File tree Expand file tree Collapse file tree 4 files changed +126
-0
lines changed
testData/actions/generation/generator
DataModelGenerator/generateDataModel
DataModelInterfaceGenerator/generateDataModelInterface
tests/com/magento/idea/magento2plugin/actions/generation/generator Expand file tree Collapse file tree 4 files changed +126
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Foo \Bar \Model \Data ;
4+
5+ use Foo \Bar \Api \Data \SampleInterface ;
6+ use Magento \Framework \DataObject ;
7+
8+ class Sample extends DataObject implements SampleInterface
9+ {
10+ /**
11+ * @inheritDoc
12+ */
13+ public function getSampleProperty ()
14+ {
15+ return $ this ->getData (self ::SAMPLE_PROPERTY );
16+ }
17+
18+ /**
19+ * @inheritDoc
20+ */
21+ public function setSampleProperty ($ sampleProperty )
22+ {
23+ return $ this ->setData (self ::SAMPLE_PROPERTY , $ sampleProperty );
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Foo \Bar \Api \Data ;
4+
5+ interface SampleInterface
6+ {
7+ /**
8+ * String constants for property names
9+ */
10+ const SAMPLE_PROPERTY = "sample_property " ;
11+
12+ /**
13+ * @return string
14+ */
15+ public function getSampleProperty ();
16+
17+ /**
18+ * @param string $sampleProperty
19+ * @return $this
20+ */
21+ public function setSampleProperty ($ sampleProperty );
22+ }
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright © Magento, Inc. All rights reserved.
3+ * See COPYING.txt for license details.
4+ */
5+
6+ package com .magento .idea .magento2plugin .actions .generation .generator ;
7+
8+ import com .intellij .openapi .project .Project ;
9+ import com .intellij .psi .PsiFile ;
10+ import com .magento .idea .magento2plugin .actions .generation .NewDataModelAction ;
11+ import com .magento .idea .magento2plugin .actions .generation .data .DataModelData ;
12+
13+ public class DataModelGeneratorTest extends BaseGeneratorTestCase {
14+ /**
15+ * Tests for generation of a Magento 2 Data Model.
16+ */
17+ public void testGenerateDataModel () {
18+ final Project project = myFixture .getProject ();
19+ final DataModelData modelData = new DataModelData (
20+ "Foo\\ Bar\\ Model\\ Data" ,
21+ "Sample" ,
22+ "Foo_Bar" ,
23+ "Foo\\ Bar\\ Model\\ Data\\ Sample" ,
24+ "Foo\\ Bar\\ Api\\ Data\\ SampleInterface" ,
25+ "SAMPLE_PROPERTY;sample_property;string;SampleProperty;sampleProperty"
26+ );
27+ final DataModelGenerator generator = new DataModelGenerator (
28+ project , modelData
29+ );
30+ final PsiFile modelFile = generator .generate (NewDataModelAction .ACTION_NAME );
31+ final PsiFile expectedFile
32+ = myFixture .configureByFile (this .getFixturePath ("Sample.php" ));
33+
34+ assertGeneratedFileIsCorrect (
35+ expectedFile ,
36+ "src/app/code/Foo/Bar/Model/Data" ,
37+ modelFile
38+ );
39+ }
40+ }
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright © Magento, Inc. All rights reserved.
3+ * See COPYING.txt for license details.
4+ */
5+
6+ package com .magento .idea .magento2plugin .actions .generation .generator ;
7+
8+ import com .intellij .openapi .project .Project ;
9+ import com .intellij .psi .PsiFile ;
10+ import com .magento .idea .magento2plugin .actions .generation .NewDataModelAction ;
11+ import com .magento .idea .magento2plugin .actions .generation .data .DataModelInterfaceData ;
12+
13+ public class DataModelInterfaceGeneratorTest extends BaseGeneratorTestCase {
14+ /**
15+ * Tests for generation of a Magento 2 Data Model Interface.
16+ */
17+ public void testGenerateDataModelInterface () {
18+ final Project project = myFixture .getProject ();
19+ final DataModelInterfaceData interfaceData = new DataModelInterfaceData (
20+ "Foo\\ Bar\\ Api\\ Data" ,
21+ "SampleInterface" ,
22+ "Foo_Bar" ,
23+ "Foo\\ Bar\\ Api\\ Data\\ SampleInterface" ,
24+ "SAMPLE_PROPERTY;sample_property;string;SampleProperty;sampleProperty"
25+ );
26+ final DataModelInterfaceGenerator generator = new DataModelInterfaceGenerator (
27+ project , interfaceData
28+ );
29+ final PsiFile interfaceFile = generator .generate (NewDataModelAction .ACTION_NAME );
30+ final PsiFile expectedFile
31+ = myFixture .configureByFile (this .getFixturePath ("SampleInterface.php" ));
32+
33+ assertGeneratedFileIsCorrect (
34+ expectedFile ,
35+ "src/app/code/Foo/Bar/Api/Data" ,
36+ interfaceFile
37+ );
38+ }
39+ }
You can’t perform that action at this time.
0 commit comments