beConstructedWith( $priceNameResolver, $channelPricingNameResolver, $channelContext, $currencyContext, $currencyConverter ); } function it_is_initializable(): void { $this->shouldHaveType(HasPriceBetweenQueryBuilder::class); } function it_implements_query_builder_interface(): void { $this->shouldHaveType(QueryBuilderInterface::class); } function it_builds_query( PriceNameResolverInterface $priceNameResolver, ChannelContextInterface $channelContext, ChannelInterface $channel, CurrencyContextInterface $currencyContext, CurrencyInterface $currency, ConcatedNameResolverInterface $channelPricingNameResolver ): void { $channel->getCode()->willReturn('web'); $channelContext->getChannel()->willReturn($channel); $priceNameResolver->resolveMinPriceName()->willReturn('min_price'); $priceNameResolver->resolveMaxPriceName()->willReturn('max_price'); $channel->getBaseCurrency()->willReturn($currency); $currency->getCode()->willReturn('USD'); $currencyContext->getCurrencyCode()->willReturn('USD'); $channelPricingNameResolver->resolvePropertyName('web')->willReturn('web'); $this->buildQuery([ 'min_price' => '200', 'max_price' => '1000', ])->shouldBeAnInstanceOf(Range::class); } }