factory = new HVAC_Test_User_Factory(); } public function tearDown(): void { $this->factory->cleanup(); parent::tearDown(); } public function test_create_user_with_single_role() { $user_id = $this->factory->create_user('testuser1', ['hvac_trainer']); $this->assertNotWPError($user_id); $this->assertTrue($this->factory->validate_user_roles($user_id, ['hvac_trainer'])); } public function test_create_user_with_multiple_roles() { $user_id = $this->factory->create_user('testuser2', ['hvac_trainer', 'subscriber']); $this->assertNotWPError($user_id); $this->assertTrue($this->factory->validate_user_roles($user_id, ['hvac_trainer', 'subscriber'])); } public function test_create_user_with_persona() { $user_id = $this->factory->create_user_with_persona('testuser3', 'basic_trainer'); $this->assertNotWPError($user_id); $this->assertTrue($this->factory->validate_user_roles($user_id, ['hvac_trainer'])); $this->assertEquals('Test HVAC Training Co.', get_user_meta($user_id, 'company_name', true)); } public function test_cleanup_removes_all_created_users() { $user1 = $this->factory->create_user('testuser4', ['hvac_trainer']); $user2 = $this->factory->create_user('testuser5', ['hvac_trainer']); $this->assertNotWPError($user1); $this->assertNotWPError($user2); $this->factory->cleanup(); $this->assertFalse(get_user_by('ID', $user1)); $this->assertFalse(get_user_by('ID', $user2)); } public function test_get_available_personas() { $personas = $this->factory->get_available_personas(); $this->assertContains('basic_trainer', $personas); $this->assertContains('advanced_trainer', $personas); $this->assertContains('admin_trainer', $personas); } public function test_add_custom_persona() { $result = $this->factory->add_persona('custom_trainer', [ 'roles' => ['hvac_trainer'], 'capabilities' => ['custom_cap'], 'meta' => ['custom_field' => 'value'] ]); $this->assertTrue($result); $this->assertNotNull($this->factory->get_persona_config('custom_trainer')); } }