function it_creates_and_persist_a_country_type_zone_and_a_zone_containing_it(FactoryInterface $countryFactory, ObjectManager $countryManager, ZoneFactoryInterface $zoneFactory, ObjectManager $zoneManager, CountryInterface $country, ZoneInterface $countryTypeZone, ZoneInterface $zoneTypeZone)
{
$countryFactory->createNew()->willReturn($country);
$country->setCode('PL')->shouldBeCalled();
$country->enable()->shouldBeCalled();
$zoneFactory->createWithMembers(['PL'])->willReturn($countryTypeZone);
$countryTypeZone->setCode('POLAND')->shouldBeCalled();
$countryTypeZone->setName('Poland')->shouldBeCalled();
$countryTypeZone->setType(ZoneInterface::TYPE_COUNTRY)->shouldBeCalled();
$zoneFactory->createWithMembers(['POLAND'])->willReturn($zoneTypeZone);
$zoneTypeZone->setCode('YO-DAWG')->shouldBeCalled();
$zoneTypeZone->setName('Yo dawg')->shouldBeCalled();
$zoneTypeZone->setType(ZoneInterface::TYPE_ZONE)->shouldBeCalled();
$countryManager->persist($country)->shouldBeCalled();
$zoneManager->persist($countryTypeZone)->shouldBeCalled();
$zoneManager->persist($zoneTypeZone)->shouldBeCalled();
$countryManager->flush()->shouldBeCalled();
$zoneManager->flush()->shouldBeCalled();
$this->load(['countries' => ['PL'], 'provinces' => [], 'zones' => ['POLAND' => ['name' => 'Poland', 'countries' => ['PL'], 'provinces' => [], 'zones' => []], 'YO-DAWG' => ['name' => 'Yo dawg', 'countries' => [], 'provinces' => [], 'zones' => ['POLAND']]]]);
}