Skip to content

Commit 77eb68f

Browse files
committed
272: fix the composer.json generation with mo
1 parent 7efd011 commit 77eb68f

File tree

8 files changed

+94
-12
lines changed

8 files changed

+94
-12
lines changed

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleComposerJsonGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ private String getDependenciesString(final List dependenciesList) {
143143
result = result.concat(": \"" + dependencyData.getSecond() + "\"");
144144
}
145145

146-
if (dependencies.length != i + 1) {
146+
if (!dependencyData.getFirst().isEmpty() && dependencies.length != i + 1) {
147147
result = result.concat(",");
148+
result = result.concat("\n");
148149
}
149150

150-
result = result.concat("\n");
151151
}
152152

153153
return result;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "test/module",
3+
"version": "1.0.0-dev",
4+
"description": "test-description",
5+
"type": "magento2-module",
6+
"require": {
7+
"magento/framework": "*"
8+
},
9+
"license": [
10+
"Test License 1",
11+
"Test License 2"
12+
],
13+
"autoload": {
14+
"files": [
15+
"registration.php"
16+
],
17+
"psr-4": {
18+
"Test\\Module\\": ""
19+
}
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "test/module",
3+
"version": "1.0.0-dev",
4+
"description": "test-description",
5+
"type": "magento2-module",
6+
"require": {
7+
"magento/framework": "*"
8+
},
9+
"license": [
10+
"Test License 1",
11+
"Test License 2"
12+
],
13+
"autoload": {
14+
"files": [
15+
"registration.php"
16+
],
17+
"psr-4": {
18+
"Test\\Module\\": ""
19+
}
20+
}
21+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" ?>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
3+
<module name="Foo_BarWithoutComposer"/>
4+
</config>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
\Magento\Framework\Component\ComponentRegistrar::register(
3+
\Magento\Framework\Component\ComponentRegistrar::MODULE,
4+
'Foo_BarWithOutComposer',
5+
__DIR__
6+
);

tests/com/magento/idea/magento2plugin/actions/generation/generator/ModuleComposerJsonGeneratorTest.java

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,67 @@
1515

1616
public class ModuleComposerJsonGeneratorTest extends BaseGeneratorTestCase {
1717

18-
public void testGenerateModuleFile() {
18+
public void testGenerateModuleFileWithDependencies() {
1919
String filePath = this.getFixturePath(ComposerJson.FILE_NAME);
2020
PsiFile expectedFile = myFixture.configureByFile(filePath);
2121
PsiDirectory projectDir = getProjectDirectory();
2222

23-
PsiFile composerJson = generateComposerJson(true, projectDir);
23+
String expectedDirectory = projectDir.getVirtualFile().getPath() + "/Test/Module";
24+
PsiFile composerJson = generateComposerJson(true, projectDir, true);
2425

2526
assertGeneratedFileIsCorrect(
2627
expectedFile,
27-
projectDir.getVirtualFile().getPath() + "/Test/Module",
28+
expectedDirectory,
2829
composerJson
2930
);
3031
}
3132

32-
public void testGenerateFileInRoot() {
33+
public void testGenerateFileInRootWithDependencies() {
3334
String filePath = this.getFixturePath(ComposerJson.FILE_NAME);
3435
PsiFile expectedFile = myFixture.configureByFile(filePath);
3536
PsiDirectory projectDir = getProjectDirectory();
3637

37-
PsiFile composerJson = generateComposerJson(false, projectDir);
38+
String composerJsonDirPath = projectDir.getVirtualFile().getPath();
39+
PsiFile composerJson = generateComposerJson(false, projectDir, true);
40+
41+
assertGeneratedFileIsCorrect(expectedFile, composerJsonDirPath, composerJson);
42+
}
43+
44+
public void testGenerateModuleFileWithoutDependencies() {
45+
String filePath = this.getFixturePath(ComposerJson.FILE_NAME);
46+
PsiFile expectedFile = myFixture.configureByFile(filePath);
47+
PsiDirectory projectDir = getProjectDirectory();
48+
String expectedDirectory = projectDir.getVirtualFile().getPath() + "/Test/Module";
49+
PsiFile composerJson = generateComposerJson(true, projectDir, false);
3850

3951
assertGeneratedFileIsCorrect(
40-
expectedFile,
41-
projectDir.getVirtualFile().getPath(),
42-
composerJson
52+
expectedFile,
53+
expectedDirectory,
54+
composerJson
55+
);
56+
}
57+
58+
public void testGenerateFileInRootWithoutDependencies() {
59+
String filePath = this.getFixturePath(ComposerJson.FILE_NAME);
60+
PsiFile expectedFile = myFixture.configureByFile(filePath);
61+
PsiDirectory projectDir = getProjectDirectory();
62+
PsiFile composerJson = generateComposerJson(false, projectDir, false);
63+
64+
assertGeneratedFileIsCorrect(
65+
expectedFile,
66+
projectDir.getVirtualFile().getPath(),
67+
composerJson
4368
);
4469
}
4570

46-
private PsiFile generateComposerJson(boolean createModuleDirectories, PsiDirectory projectDir) {
71+
private PsiFile generateComposerJson(
72+
boolean createModuleDirectories,
73+
PsiDirectory projectDir,
74+
boolean withDependencies) {
4775
Project project = myFixture.getProject();
48-
List<String> dependencies = new ArrayList<>(Arrays.asList("Foo_Bar", "Magento_Backend"));
76+
List<String> dependencies = withDependencies ?
77+
new ArrayList<>(Arrays.asList("Foo_Bar", "Magento_Backend"))
78+
: new ArrayList<>(Arrays.asList("Foo_BarWithOutComposer"));
4979
List<String> licenses = new ArrayList<>(Arrays.asList("Test License 1", "Test License 2"));
5080
ModuleComposerJsonData composerJsonData = new ModuleComposerJsonData(
5181
"Test",

0 commit comments

Comments
 (0)