62 $this->objectManagerHelper =
new ObjectManagerHelper($this);
64 $this->urlPersistMock = $this->getMockBuilder(UrlPersistInterface::class)
65 ->getMockForAbstractClass();
66 $this->cmsPageUrlRewriteGeneratorMock = $this->getMockBuilder(CmsPageUrlRewriteGenerator::class)
67 ->disableOriginalConstructor()
69 $this->pageMock = $this->getMockBuilder(Page::class)
70 ->setMethods([
'getId',
'dataHasChangedFor'])
71 ->disableOriginalConstructor()
73 $this->eventMock = $this->getMockBuilder(Event::class)
74 ->setMethods([
'getObject'])
75 ->disableOriginalConstructor()
77 $this->eventObserverMock = $this->getMockBuilder(EventObserver::class)
78 ->disableOriginalConstructor()
81 $this->eventObserverMock->expects($this->once())
83 ->willReturn($this->eventMock);
84 $this->eventMock->expects($this->once())
86 ->willReturn($this->pageMock);
88 $this->observer = $this->objectManagerHelper->getObject(
89 ProcessUrlRewriteSavingObserver::class,
91 'cmsPageUrlRewriteGenerator' => $this->cmsPageUrlRewriteGeneratorMock,
92 'urlPersist' => $this->urlPersistMock,
106 $urls = [
'first url',
'second url'];
108 $this->pageMock->expects($this->any())
109 ->method(
'dataHasChangedFor')
111 [
'identifier', $identifierChanged],
112 [
'store_id', $storeIdChanged],
114 $this->pageMock->expects($this->once())
116 ->willReturn($pageId);
117 $this->cmsPageUrlRewriteGeneratorMock->expects($this->once())
119 ->with($this->pageMock)
121 $this->urlPersistMock->expects($this->once())
122 ->method(
'deleteByData')
127 $this->urlPersistMock->expects($this->once())
131 $this->observer->execute($this->eventObserverMock);
140 [
'identifier' =>
true,
'storeIdChanged' =>
true],
141 [
'identifier' =>
true,
'storeIdChanged' =>
false],
142 [
'identifier' =>
false,
'storeIdChanged' =>
true],
151 $this->pageMock->expects($this->any())
152 ->method(
'dataHasChangedFor')
154 [
'identifier',
false],
157 $this->pageMock->expects($this->never())
159 $this->cmsPageUrlRewriteGeneratorMock->expects($this->never())
160 ->method(
'generate');
161 $this->urlPersistMock->expects($this->never())
162 ->method(
'deleteByData');
163 $this->urlPersistMock->expects($this->never())
166 $this->observer->execute($this->eventObserverMock);
testExecute($identifierChanged, $storeIdChanged)
$cmsPageUrlRewriteGeneratorMock
testExecuteWithoutDataChanged()