transform('')); self::assertEquals('', $sut->transform(null)); /* @phpstan-ignore argument.type */ self::assertEquals('', $sut->transform(new \stdClass())); self::assertEquals( 'hello world:xxxxx foo bar test:1234', $sut->transform(new SearchTerm('hello world:xxxxx foo bar test:1234')) ); } public function testReverseTransform(): void { $sut = new SearchTermTransformer(); self::assertNull($sut->reverseTransform('')); self::assertNull($sut->reverseTransform(null)); $term = $sut->reverseTransform('hello world:xxxxx foo bar test:1234'); self::assertInstanceOf(SearchTerm::class, $term); self::assertEquals('hello world:xxxxx foo bar test:1234', $term->getOriginalSearch()); self::assertEquals('hello foo bar', $term->getSearchTerm()); self::assertEquals(['world' => 'xxxxx', 'test' => '1234'], $term->getSearchFields()); $expectedParts = [ ['hello', null], ['xxxxx', 'world'], ['foo', null], ['bar', null], ['1234', 'test'], ]; $i = 0; foreach ($term->getParts() as $part) { $expected = $expectedParts[$i++]; self::assertEquals($expected[0], $part->getTerm()); self::assertEquals($expected[1], $part->getField()); } } }