21 private $countriesFactoryMock;
26 private $allowedCountriesMock;
31 private $storeManagerMock;
36 private $countryByWebsite;
41 private $shareConfigMock;
45 $this->countriesFactoryMock =
47 ->setMethods([
'create'])
48 ->disableOriginalConstructor()
50 $this->allowedCountriesMock = $this->getMockBuilder(AllowedCountries::class)
51 ->disableOriginalConstructor()
53 $eavCollectionFactoryMock =
55 ->disableOriginalConstructor()
59 ->disableOriginalConstructor()
61 $this->storeManagerMock = $this->createMock(StoreManagerInterface::class);
62 $this->shareConfigMock = $this->getMockBuilder(Share::class)
63 ->disableOriginalConstructor()
66 $eavCollectionFactoryMock,
68 $this->countriesFactoryMock,
69 $this->allowedCountriesMock,
70 $this->storeManagerMock,
71 $this->shareConfigMock
77 $website1 = $this->createMock(WebsiteInterface::class);
78 $website2 = $this->createMock(WebsiteInterface::class);
80 $website1->expects($this->atLeastOnce())
83 $website2->expects($this->atLeastOnce())
86 $this->storeManagerMock->expects($this->once())
87 ->method(
'getWebsites')
88 ->willReturn([$website1, $website2]);
89 $collectionMock = $this->getMockBuilder(AbstractDb::class)
90 ->disableOriginalConstructor()
93 $this->allowedCountriesMock->expects($this->exactly(2))
94 ->method(
'getAllowedCountries')
100 [
'website', 1, [
'AM' =>
'AM']],
101 [
'website', 2, [
'AM' =>
'AM',
'DZ' =>
'DZ']]
103 $this->countriesFactoryMock->expects($this->once())
105 ->willReturn($collectionMock);
106 $collectionMock->expects($this->once())
107 ->method(
'addFieldToFilter')
108 ->with(
'country_id', [
'in' => [
'AM' =>
'AM',
'DZ' =>
'DZ']])
110 $collectionMock->expects($this->once())
111 ->method(
'toOptionArray')
113 [
'value' =>
'AM',
'label' =>
'UZ']
116 $this->assertEquals([
117 [
'value' =>
'AM',
'label' =>
'UZ',
'website_ids' => [1, 2]]
118 ], $this->countryByWebsite->getAllOptions());