Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions datamodel/odata-v4/odata-v4-generator-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,6 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
package com.sap.cloud.sdk.datamodel.odatav4.generator;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.SoftAssertions.assertSoftly;

import java.io.File;
import java.net.URL;

import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.api.plugin.testing.InjectMojo;
import org.apache.maven.api.plugin.testing.MojoTest;
import org.junit.jupiter.api.Test;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;

import com.sap.cloud.sdk.datamodel.odata.utility.NameSource;
import com.sap.cloud.sdk.datamodel.odata.utility.S4HanaNamingStrategy;
import com.sap.cloud.sdk.datamodel.odatav4.generator.annotation.DefaultAnnotationStrategy;

@MojoTest
class DataModelGeneratorMojoTest
{
private static final String TEST_POM = "src/test/resources/DataModelGeneratorMojoTest/pom.xml";

@Test
void test()
@InjectMojo( goal = "generate", pom = TEST_POM )
void test( DataModelGeneratorMojo mojo )
throws Throwable
{
final DataModelGeneratorMojo mojo = loadTestProject();
final DataModelGenerator generator = mojo.getDataModelGenerator();

assertSoftly(softly -> {
Expand Down Expand Up @@ -51,28 +49,4 @@ void test()
softly.assertThat(generator.isServiceMethodsPerEntitySet()).isTrue();
});
}

private DataModelGeneratorMojo loadTestProject()
throws Throwable
{
final URL resource = getClass().getClassLoader().getResource(getClass().getSimpleName());
assertThat(resource).isNotNull();

final File pomFile = new File(resource.getFile());

final MojoRule rule = new MojoRule();
// hacky workaround to invoke the internal call to "testCase.setUp()" inside MojoRule
// exploiting the fact that the setup is not teared down after "evaluate" returns
// this workaround is applied because "lookupConfiguredMojo" is not available on AbstractMojoTestCase
// and this way we can skip the effort to re-implement what is already available in MojoRule
rule.apply(new Statement()
{
@Override
public void evaluate()
{

}
}, Description.createSuiteDescription("dummy")).evaluate();
return (DataModelGeneratorMojo) rule.lookupConfiguredMojo(pomFile, "generate");
}
}
6 changes: 0 additions & 6 deletions datamodel/odata/odata-generator-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,6 @@
<scope>test</scope>
</dependency>
<!-- JUnit 4 must not be used for test execution -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
package com.sap.cloud.sdk.datamodel.odata.generator;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.SoftAssertions.assertSoftly;

import java.io.File;
import java.net.URL;

import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.api.plugin.testing.InjectMojo;
import org.apache.maven.api.plugin.testing.MojoTest;
import org.junit.jupiter.api.Test;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;

import com.sap.cloud.sdk.datamodel.odata.generator.annotation.DefaultAnnotationStrategy;
import com.sap.cloud.sdk.datamodel.odata.utility.NameSource;
import com.sap.cloud.sdk.datamodel.odata.utility.S4HanaNamingStrategy;

@MojoTest
class DataModelGeneratorMojoTest
{
private static final String TEST_POM = "src/test/resources/DataModelGeneratorMojoTest/pom.xml";

@Test
void test()
throws Throwable
@InjectMojo( goal = "generate", pom = TEST_POM )
void test( DataModelGeneratorMojo mojo )
{
final DataModelGeneratorMojo mojo = loadTestProject();
final DataModelGenerator generator = mojo.getDataModelGenerator();

assertSoftly(softly -> {
Expand Down Expand Up @@ -51,28 +48,4 @@ void test()
softly.assertThat(generator.isServiceMethodsPerEntitySet()).isTrue();
});
}

private DataModelGeneratorMojo loadTestProject()
throws Throwable
{
final URL resource = getClass().getClassLoader().getResource(getClass().getSimpleName());
assertThat(resource).isNotNull();

final File pomFile = new File(resource.getFile());

final MojoRule rule = new MojoRule();
// hacky workaround to invoke the internal call to "testCase.setUp()" inside MojoRule
// exploiting the fact that the setup is not teared down after "evaluate" returns
// this workaround is applied because "lookupConfiguredMojo" is not available on AbstractMojoTestCase
// and this way we can skip the effort to re-implement what is already available in MojoRule
rule.apply(new Statement()
{
@Override
public void evaluate()
{

}
}, Description.createSuiteDescription("dummy")).evaluate();
return (DataModelGeneratorMojo) rule.lookupConfiguredMojo(pomFile, "generate");
}
}
7 changes: 0 additions & 7 deletions datamodel/openapi/openapi-generator-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,6 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<!-- JUnit 4 must not be used for test execution -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@
import static org.assertj.core.api.Assertions.assertThat;

import java.io.File;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.function.Predicate;

import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.api.plugin.testing.InjectMojo;
import org.apache.maven.api.plugin.testing.MojoTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;

import com.sap.cloud.sdk.datamodel.openapi.generator.model.ApiMaturity;
import com.sap.cloud.sdk.datamodel.openapi.generator.model.GenerationConfiguration;
Expand All @@ -25,22 +23,26 @@
* module. However, it was found that the OpenAPI generator behaves strange when it comes to accessing the templates as
* resources on the classpath. This issue was not caught in the {@code DataModelGeneratorIntegrationTest}.
*/
@MojoTest
class DataModelGeneratorMojoIntegrationTest
{
@TempDir
File outputDirectory;

private static final String TEST_POM =
"src/test/resources/DataModelGeneratorMojoIntegrationTest/sodastore/input/pom.xml";
private static final String FOLDER_WITH_EXPECTED_CONTENT =
"src/test/resources/" + DataModelGeneratorMojoIntegrationTest.class.getSimpleName() + "/sodastore/output";

@TempDir
File outputDirectory;

@Test
void generateAndCompareSodastoreLibrary()
@InjectMojo( goal = "generate", pom = TEST_POM )
void generateAndCompareSodastoreLibrary( DataModelGeneratorMojo mojo )
throws Throwable
{
final String outputFolderWithActualContent =
Paths.get(outputDirectory.getAbsolutePath()).resolve("output").toString();

generateSodastoreLibrary(outputFolderWithActualContent);
generateSodastoreLibrary(mojo, outputFolderWithActualContent);

assertThatDirectoriesHaveSameContent(
Paths.get(FOLDER_WITH_EXPECTED_CONTENT),
Expand All @@ -49,17 +51,16 @@ void generateAndCompareSodastoreLibrary()

// Run this test method manually to overwrite the folder containing the expected content with the latest generator state
// @Test
void regenerateExpectedSodastoreLibrary()
@InjectMojo( goal = "generate", pom = TEST_POM )
void regenerateExpectedSodastoreLibrary( DataModelGeneratorMojo mojo )
throws Throwable
{
generateSodastoreLibrary(FOLDER_WITH_EXPECTED_CONTENT);
generateSodastoreLibrary(mojo, FOLDER_WITH_EXPECTED_CONTENT);
}

private void generateSodastoreLibrary( final String outputDirectory )
private void generateSodastoreLibrary( DataModelGeneratorMojo mojo, final String outputDirectory )
throws Throwable
{
final DataModelGeneratorMojo mojo = loadTestProject();

final GenerationConfiguration configuration = mojo.retrieveGenerationConfiguration().get();

assertThat(configuration.getApiMaturity()).isEqualTo(ApiMaturity.RELEASED);
Expand All @@ -84,28 +85,4 @@ private static void assertThatDirectoriesHaveSameContent( final Path a, final Pa
Files.walk(a).filter(isFile).forEach(p -> assertThat(p).hasSameTextualContentAs(b.resolve(a.relativize(p))));
Files.walk(b).filter(isFile).forEach(p -> assertThat(p).hasSameTextualContentAs(a.resolve(b.relativize(p))));
}

private DataModelGeneratorMojo loadTestProject()
throws Throwable
{
final URL resource = getClass().getClassLoader().getResource(getClass().getSimpleName() + "/sodastore/input");
assertThat(resource).isNotNull();

final File pomFile = new File(resource.getFile());

final MojoRule rule = new MojoRule();
// hacky workaround to invoke the internal call to "testCase.setUp()" inside MojoRule
// exploiting the fact that the setup is not teared down after "evaluate" returns
// this workaround is applied because "lookupConfiguredMojo" is not available on AbstractMojoTestCase
// and this way we can skip the effort to re-implement what is already available in MojoRule
rule.apply(new Statement()
{
@Override
public void evaluate()
{

}
}, Description.createSuiteDescription("dummy")).evaluate();
return (DataModelGeneratorMojo) rule.lookupConfiguredMojo(pomFile, "generate");
}
}
Loading