Skip to content

Commit f1cf7d2

Browse files
author
Vitaliy
authored
Merge pull request #234 from serhiyzhovnir/issue-200-cover-observer-events.xml-generator
#issue-200 Covered observer events.xml generator
2 parents 4a449d6 + 142de86 commit f1cf7d2

File tree

4 files changed

+129
-0
lines changed

4 files changed

+129
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0"?>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
4+
<event name="test_event">
5+
<observer name="test_observer" instance="Foo\Bar\Observer\Test\TestEventObserver"/>
6+
</event>
7+
<event name="test_event_2">
8+
<observer name="test_observer_2" instance="Foo\Bar\Observer\Test\TestEventObserverTwo"/>
9+
</event>
10+
</config>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0"?>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
4+
<event name="test_event">
5+
<observer name="test_observer" instance="Foo\Bar\Observer\Test\TestEventObserver"/>
6+
</event>
7+
</config>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0"?>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
4+
<event name="test_event">
5+
<observer name="test_observer" instance="Foo\Bar\Observer\Test\TestEventObserver"/>
6+
</event>
7+
</config>
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
package com.magento.idea.magento2plugin.actions.generation.generator;
6+
7+
import com.intellij.openapi.project.Project;
8+
import com.intellij.psi.PsiFile;
9+
import com.magento.idea.magento2plugin.actions.generation.data.ObserverEventsXmlData;
10+
import com.magento.idea.magento2plugin.magento.files.ModuleEventsXml;
11+
import com.magento.idea.magento2plugin.magento.packages.File;
12+
import com.magento.idea.magento2plugin.magento.packages.Package;
13+
14+
public class ObserverEventsXmlGeneratorTest extends BaseGeneratorTestCase {
15+
private static final String moduleName = "Foo_Bar";
16+
private static final String moduleDir = "src/app/code/Foo/Bar/";
17+
18+
public void testGenerateEventsXmlInBaseAreaFile() {
19+
String filePath = this.getFixturePath(ModuleEventsXml.FILE_NAME);
20+
PsiFile expectedFile = myFixture.configureByFile(filePath);
21+
Project project = myFixture.getProject();
22+
String area = Package.Areas.base.toString();
23+
PsiFile eventsXml = addEventToEventsXml(
24+
project,
25+
area,
26+
"test_event",
27+
"test_observer",
28+
"Foo\\Bar\\Observer\\Test\\TestEventObserver"
29+
);
30+
31+
assertGeneratedFileIsCorrect(
32+
expectedFile,
33+
moduleDir + Package.MODULE_BASE_AREA_DIR,
34+
eventsXml
35+
);
36+
}
37+
38+
public void testGenerateEventsXmlInAdminhtmlAreaFile() {
39+
String filePath = this.getFixturePath(ModuleEventsXml.FILE_NAME);
40+
PsiFile expectedFile = myFixture.configureByFile(filePath);
41+
Project project = myFixture.getProject();
42+
String area = Package.Areas.adminhtml.toString();
43+
PsiFile eventsXml = addEventToEventsXml(
44+
project,
45+
area,
46+
"test_event",
47+
"test_observer",
48+
"Foo\\Bar\\Observer\\Test\\TestEventObserver"
49+
);
50+
51+
assertGeneratedFileIsCorrect(
52+
expectedFile,
53+
moduleDir + Package.MODULE_BASE_AREA_DIR + File.separator + area,
54+
eventsXml
55+
);
56+
}
57+
58+
public void testAddTwoObserversToOneEventsXml() {
59+
String filePath = this.getFixturePath(ModuleEventsXml.FILE_NAME);
60+
PsiFile expectedFile = myFixture.configureByFile(filePath);
61+
Project project = myFixture.getProject();
62+
addEventToEventsXml(
63+
project,
64+
Package.Areas.frontend.toString(),
65+
"test_event",
66+
"test_observer",
67+
"Foo\\Bar\\Observer\\Test\\TestEventObserver"
68+
);
69+
PsiFile eventsXml = addEventToEventsXml(
70+
project,
71+
Package.Areas.frontend.toString(),
72+
"test_event_2",
73+
"test_observer_2",
74+
"Foo\\Bar\\Observer\\Test\\TestEventObserverTwo"
75+
);
76+
77+
assertGeneratedFileIsCorrect(
78+
expectedFile,
79+
moduleDir + Package.MODULE_BASE_AREA_DIR + File.separator + Package.Areas.frontend.toString(),
80+
eventsXml
81+
);
82+
}
83+
84+
private PsiFile addEventToEventsXml(
85+
Project project,
86+
String area,
87+
String eventName,
88+
String observerName,
89+
String observerClassFqn
90+
) {
91+
ObserverEventsXmlData observerEventsXmlData = new ObserverEventsXmlData(
92+
area,
93+
moduleName,
94+
eventName,
95+
observerName,
96+
observerClassFqn
97+
);
98+
ObserverEventsXmlGenerator observerEventsXmlGenerator = new ObserverEventsXmlGenerator(
99+
observerEventsXmlData,
100+
project
101+
);
102+
103+
return observerEventsXmlGenerator.generate("test");
104+
}
105+
}

0 commit comments

Comments
 (0)