beConstructedWith( $localeContext, $productNameNameResolver, 'name_property' ); } function it_is_initializable(): void { $this->shouldHaveType(ContainsNameQueryBuilder::class); } function it_implements_query_builder_interface(): void { $this->shouldHaveType(QueryBuilderInterface::class); } function it_builds_query( LocaleContextInterface $localeContext, ConcatedNameResolverInterface $productNameNameResolver ): void { $localeContext->getLocaleCode()->willReturn('en'); $productNameNameResolver->resolvePropertyName('en')->willReturn('en'); $this->buildQuery(['name_property' => 'Book'])->shouldBeAnInstanceOf(Match::class); } function it_builds_returned_null_if_property_is_null( LocaleContextInterface $localeContext, ConcatedNameResolverInterface $productNameNameResolver ): void { $localeContext->getLocaleCode()->willReturn('en'); $productNameNameResolver->resolvePropertyName('en')->willReturn('en'); $this->buildQuery(['name_property' => null])->shouldBeEqualTo(null); } }