'Test HVAC Training Event', 'description' => 'Test event description', 'start_date' => '', 'end_date' => '', 'capacity' => 20, 'price' => 199.00 ]; public function setUp(): void { parent::setUp(); // Create a test trainer with HVAC role $this->test_trainer = $this->factory->user->create_and_get([ 'role' => 'hvac_trainer' ]); // Set dates for test events $this->test_event_data['start_date'] = date('Y-m-d H:i:s', strtotime('+1 week')); $this->test_event_data['end_date'] = date('Y-m-d H:i:s', strtotime('+1 week 2 hours')); wp_set_current_user($this->test_trainer->ID); } public function test_event_creation_with_valid_data() { $event_id = $this->create_test_event(); $this->assertGreaterThan(0, $event_id); $event = tribe_get_event($event_id); $this->assertEquals($this->test_event_data['title'], $event->post_title); } public function test_event_creation_requires_hvac_role() { // Switch to non-trainer user $regular_user = $this->factory->user->create_and_get(['role' => 'subscriber']); wp_set_current_user($regular_user->ID); $this->expectException(Exception::class); $this->create_test_event(); } public function test_event_modification() { $event_id = $this->create_test_event(); $new_title = 'Modified Test Event'; $updated = tribe_update_event($event_id, [ 'post_title' => $new_title, 'post_content' => 'Updated description' ]); $this->assertNotFalse($updated); $event = tribe_get_event($event_id); $this->assertEquals($new_title, $event->post_title); } public function test_event_deletion() { $event_id = $this->create_test_event(); $deleted = tribe_delete_event($event_id); $this->assertNotFalse($deleted); $this->assertNull(tribe_get_event($event_id)); } protected function create_test_event() { return tribe_create_event($this->test_event_data); } }