27 $this->urlRewriteFactory = $this->getMockBuilder(\
Magento\
UrlRewrite\Service\V1\Data\UrlRewriteFactory::class)
28 ->setMethods([
'create'])
29 ->disableOriginalConstructor()->getMock();
30 $this->dataObjectHelper = $this->getMockBuilder(\
Magento\Framework\Api\DataObjectHelper::class)
31 ->disableOriginalConstructor()->getMock();
33 $this->storage = $this->getMockForAbstractClass(
35 [$this->urlRewriteFactory, $this->dataObjectHelper],
45 $data = [[
'field1' =>
'value1']];
46 $rows = [[
'row1'], [
'row2']];
47 $urlRewrites = [[
'urlRewrite1'], [
'urlRewrite2']];
49 $this->storage->expects($this->once())
50 ->method(
'doFindAllByData')
52 ->will($this->returnValue($rows));
54 $this->dataObjectHelper->expects($this->at(0))
55 ->method(
'populateWithArray')
56 ->with($urlRewrites[0], $rows[0], \
Magento\
UrlRewrite\Service\V1\Data\UrlRewrite::class)
57 ->will($this->returnSelf());
59 $this->urlRewriteFactory->expects($this->at(0))
61 ->will($this->returnValue($urlRewrites[0]));
63 $this->dataObjectHelper->expects($this->at(1))
64 ->method(
'populateWithArray')
65 ->with($urlRewrites[1], $rows[1], \
Magento\
UrlRewrite\Service\V1\Data\UrlRewrite::class)
66 ->will($this->returnSelf());
68 $this->urlRewriteFactory->expects($this->at(1))
70 ->will($this->returnValue($urlRewrites[1]));
72 $this->assertEquals($urlRewrites, $this->storage->findAllByData(
$data));
77 $data = [[
'field1' =>
'value1']];
79 $this->storage->expects($this->once())
80 ->method(
'doFindOneByData')
82 ->will($this->returnValue(
null));
84 $this->assertNull($this->storage->findOneByData(
$data));
89 $data = [[
'field1' =>
'value1']];
91 $urlRewrite = [
'urlRewrite1'];
93 $this->storage->expects($this->once())
94 ->method(
'doFindOneByData')
96 ->will($this->returnValue(
$row));
98 $this->dataObjectHelper->expects($this->once())
99 ->method(
'populateWithArray')
101 ->will($this->returnSelf());
103 $this->urlRewriteFactory->expects($this->any())
105 ->will($this->returnValue($urlRewrite));
107 $this->assertEquals($urlRewrite, $this->storage->findOneByData(
$data));
112 $this->storage->expects($this->never())->method(
'doReplace');
114 $this->storage->replace([]);
124 ->expects($this->once())
125 ->method(
'doReplace')
126 ->will($this->throwException(
127 new \
Magento\
UrlRewrite\Model\Exception\UrlAlreadyExistsException(
__(
'Custom storage message'))
130 $this->storage->replace([[
'UrlRewrite1']]);
140 ->expects($this->once())
141 ->method(
'doReplace')
142 ->will($this->throwException(
146 $this->storage->replace([[
'UrlRewrite1']]);
151 $urls = [[
'UrlRewrite1'], [
'UrlRewrite2']];
154 ->expects($this->once())
155 ->method(
'doReplace')
158 $this->storage->replace(
$urls);
testFindOneByDataIfFound()
testReplaceIfUrlsAreEmpty()
testReplaceIfThrewDuplicateEntryExceptionWithCustomMessage()
testFindOneByDataIfNotFound()
testReplaceIfThrewDuplicateEntryExceptionDefaultMessage()