translatableStringHelper = $this->createMock(TranslatableStringHelperInterface::class); $this->normalizer = new GenderDocGenNormalizer($this->translatableStringHelper); } public function testSupportsNormalizationReturnsTrueForGenderInstance(): void { $gender = $this->createMock(Gender::class); $this->assertTrue($this->normalizer->supportsNormalization($gender)); } public function testSupportsNormalizationReturnsFalseForNonGenderInstance(): void { $this->assertFalse($this->normalizer->supportsNormalization(new \stdClass())); } public function testNormalizeReturnsCorrectData(): void { $gender = $this->createMock(Gender::class); $gender->method('getId')->willReturn(1); $gender->method('getLabel')->willReturn(['fr' => 'homme', 'en' => 'man']); $gender->method('getGenderTranslation')->willReturn(GenderEnum::MALE); $this->translatableStringHelper ->method('localize') ->with(['fr' => 'homme', 'en' => 'man']) ->willReturn('homme'); $expected = [ 'id' => 1, 'label' => 'homme', 'genderTranslation' => GenderEnum::MALE, 'type' => 'chill_main_gender', ]; $this->assertEquals($expected, $this->normalizer->normalize($gender)); } }