Skip to content

Commit d7842bf

Browse files
author
Vitaliy Boyko
committed
Covered Cron Job Generator by Integration test
1 parent c9e897c commit d7842bf

File tree

4 files changed

+82
-4
lines changed

4 files changed

+82
-4
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,13 @@
88
import com.intellij.psi.PsiDirectory;
99
import com.intellij.psi.PsiFile;
1010
import com.jetbrains.php.lang.psi.PhpFile;
11-
import com.jetbrains.php.lang.psi.elements.PhpClass;
1211
import com.magento.idea.magento2plugin.actions.generation.data.CronjobClassData;
1312
import com.magento.idea.magento2plugin.actions.generation.generator.util.DirectoryGenerator;
1413
import com.magento.idea.magento2plugin.actions.generation.generator.util.FileFromTemplateGenerator;
1514
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
1615
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
1716
import com.magento.idea.magento2plugin.magento.files.CronjobTemplate;
18-
import com.magento.idea.magento2plugin.util.GetPhpClassByFQN;
1917
import org.jetbrains.annotations.NotNull;
20-
21-
import javax.swing.*;
2218
import java.io.File;
2319
import java.util.Properties;
2420

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
4+
namespace Foo\Bar\Cron;
5+
6+
7+
class CleanTableCronjob
8+
{
9+
/**
10+
* Cronjob Description
11+
*
12+
* @return void
13+
*/
14+
public function execute(): void
15+
{
16+
// todo: implement cronjob logic here
17+
}
18+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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.psi.PsiFile;
8+
import com.jetbrains.php.lang.psi.PhpFile;
9+
import com.magento.idea.magento2plugin.BaseProjectTestCase;
10+
import java.io.File;
11+
12+
abstract public class BaseGeneratorTestCase extends BaseProjectTestCase {
13+
private static final String testDataFolderPath = "testData" + File.separator + "actions" + File.separator;
14+
private static final String fixturesFolderPath = "generation" + File.separator + "generator" + File.separator;
15+
16+
@Override
17+
protected void setUp() throws Exception {
18+
super.setUp();
19+
myFixture.setTestDataPath(testDataFolderPath);
20+
}
21+
22+
protected String getFixturePath(String fileName) {
23+
return prepareFixturePath(fileName, fixturesFolderPath);
24+
}
25+
26+
protected void assertGeneratedFileIsCorrect(
27+
PsiFile expectedFile,
28+
String expectedDirectory,
29+
PsiFile resultFile) {
30+
31+
assertEquals(expectedDirectory, resultFile.getContainingDirectory().getVirtualFile().getPresentableUrl());
32+
assertEquals(expectedFile.getText(), resultFile.getText());
33+
assertEquals(expectedFile.getName(), resultFile.getName());
34+
}
35+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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.CronjobClassData;
10+
11+
public class CronjobClassGeneratorTest extends BaseGeneratorTestCase {
12+
13+
public void testGenerateFile() {
14+
String filePath = this.getFixturePath("CleanTableCronjob.php");
15+
PsiFile expectedFile = myFixture.configureByFile(filePath);
16+
17+
Project project = myFixture.getProject();
18+
CronjobClassData cronjobClassData = new CronjobClassData(
19+
"CleanTableCronjob",
20+
"Cron",
21+
"Foo\\Bar\\Cron",
22+
"Foo_Bar"
23+
);
24+
CronjobClassGenerator cronjobClassGenerator = new CronjobClassGenerator(project, cronjobClassData);
25+
PsiFile cronJobFile = cronjobClassGenerator.generate("test");
26+
27+
assertGeneratedFileIsCorrect(expectedFile, "/src/app/code/Foo/Bar/Cron", cronJobFile);
28+
}
29+
}

0 commit comments

Comments
 (0)