function it_returns_shipping_methods_matched_for_shipment_order_shipping_address_and_order_channel(AddressInterface $address, ChannelInterface $channel, OrderInterface $order, ShipmentInterface $shipment, ShippingMethodInterface $firstShippingMethod, ShippingMethodInterface $secondShippingMethod, ShippingMethodInterface $thirdShippingMethod, ShippingMethodRepositoryInterface $shippingMethodRepository, ZoneInterface $firstZone, ZoneInterface $secondZone, ZoneMatcherInterface $zoneMatcher)
 {
     $shipment->getOrder()->willReturn($order);
     $order->getShippingAddress()->willReturn($address);
     $order->getChannel()->willReturn($channel);
     $zoneMatcher->matchAll($address)->willReturn([$firstZone, $secondZone]);
     $firstZone->getId()->willReturn(1);
     $secondZone->getId()->willReturn(4);
     $shippingMethodRepository->findBy(['enabled' => true, 'zone' => [1, 4]])->willReturn([$firstShippingMethod, $secondShippingMethod, $thirdShippingMethod]);
     $channel->hasShippingMethod($firstShippingMethod)->willReturn(true);
     $channel->hasShippingMethod($secondShippingMethod)->willReturn(true);
     $channel->hasShippingMethod($thirdShippingMethod)->willReturn(false);
     $this->getSupportedMethods($shipment)->shouldReturn([$firstShippingMethod, $secondShippingMethod]);
 }
 /**
  * @Given /^I want to modify the (zone named "[^"]+")$/
  */
 public function iWantToModifyAZoneNamed(ZoneInterface $zone)
 {
     $this->updatePage->open(['id' => $zone->getId()]);
 }