Skip to content

Commit f88ddf0

Browse files
committed
Add integration tests with an external resolver.
1 parent ff2ec15 commit f88ddf0

File tree

3 files changed

+103
-2
lines changed

3 files changed

+103
-2
lines changed

tools/bamm-cli/src/test/java/io/openmanufacturing/sds/ApplicationIntegrationTest.java

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.File;
2020
import java.io.IOException;
2121
import java.io.PrintStream;
22+
import java.net.URISyntaxException;
2223
import java.net.URL;
2324
import java.nio.charset.StandardCharsets;
2425
import java.nio.file.Files;
@@ -35,6 +36,8 @@
3536
import org.junit.jupiter.api.BeforeAll;
3637
import org.junit.jupiter.api.BeforeEach;
3738
import org.junit.jupiter.api.Test;
39+
import org.junit.jupiter.api.condition.EnabledOnOs;
40+
import org.junit.jupiter.api.condition.OS;
3841
import org.junit.jupiter.api.io.TempDir;
3942
import org.junit.jupiter.params.ParameterizedTest;
4043
import org.junit.jupiter.params.provider.MethodSource;
@@ -157,6 +160,16 @@ public void testSvgGenToStdout( final KnownVersion metaModelVersion ) {
157160
assertThat( stdoutBuffer.toString( StandardCharsets.UTF_8 ) ).startsWith( "<svg" );
158161
}
159162

163+
@EnabledOnOs( OS.WINDOWS )
164+
@ParameterizedTest
165+
@MethodSource( value = "allVersions" )
166+
public void testSvgGenToFileWithDefLanguageAndExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
167+
final File outputDir = outputDirectory.toFile();
168+
createValidArgsExecution( metaModelVersion, "to", "svg", "-o", getPathForArtifact( "AspectWithEntity.svg" ),
169+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
170+
validateFile( outputDir, "AspectWithEntity.svg" );
171+
}
172+
160173
@ParameterizedTest
161174
@MethodSource( value = "allVersions" )
162175
public void testPngGenToFileWithDefLanguage( final KnownVersion metaModelVersion ) {
@@ -181,6 +194,16 @@ public void testPngGenToFileFailForNonexistentLanguage( final KnownVersion metaM
181194
.hasMessageContaining( "The model does not contain the desired language" );
182195
}
183196

197+
@EnabledOnOs( OS.WINDOWS )
198+
@ParameterizedTest
199+
@MethodSource( value = "allVersions" )
200+
public void testPngGenToFileWithDefLanguageAndExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
201+
final File outputDir = outputDirectory.toFile();
202+
createValidArgsExecution( metaModelVersion, "to", "png", "-o", getPathForArtifact( "AspectWithEntity.png" ),
203+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
204+
validateFile( outputDir, "AspectWithEntity.png" );
205+
}
206+
184207
@ParameterizedTest
185208
@MethodSource( value = "allVersions" )
186209
public void testDotGenToFileWithDefLanguage( final KnownVersion metaModelVersion ) {
@@ -212,6 +235,16 @@ public void testDotGenToStdout( final KnownVersion metaModelVersion ) {
212235
assertThat( stdoutBuffer.toString( StandardCharsets.UTF_8 ) ).startsWith( "digraph AspectModel" );
213236
}
214237

238+
@EnabledOnOs( OS.WINDOWS )
239+
@ParameterizedTest
240+
@MethodSource( value = "allVersions" )
241+
public void testDotGenToFileWithDefLanguageAndExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
242+
final File outputDir = outputDirectory.toFile();
243+
createValidArgsExecution( metaModelVersion, "to", "dot", "-o", getPathForArtifact( "AspectWithEntity.dot" ),
244+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
245+
validateFile( outputDir, "AspectWithEntity.dot" );
246+
}
247+
215248
@ParameterizedTest
216249
@MethodSource( value = "allVersions" )
217250
public void testJsonToFile( final KnownVersion metaModelVersion ) {
@@ -227,6 +260,16 @@ public void testJsonToStdout( final KnownVersion metaModelVersion ) {
227260
assertThat( stdoutBuffer.toString( StandardCharsets.UTF_8 ) ).startsWith( "{" );
228261
}
229262

263+
@EnabledOnOs( OS.WINDOWS )
264+
@ParameterizedTest
265+
@MethodSource( value = "allVersions" )
266+
public void testJsonToFileWithExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
267+
final File outputDir = outputDirectory.toFile();
268+
createValidArgsExecution( metaModelVersion, "to", "json", "-o", getPathForArtifact( "AspectWithEntity.json" ),
269+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
270+
validateFile( outputDir, "AspectWithEntity.json" );
271+
}
272+
230273
@ParameterizedTest
231274
@MethodSource( value = "allVersions" )
232275
public void testJsonSchemaToFile( final KnownVersion metaModelVersion ) {
@@ -242,6 +285,16 @@ public void testJsonSchemaToStdout( final KnownVersion metaModelVersion ) {
242285
assertThat( stdoutBuffer.toString( StandardCharsets.UTF_8 ) ).startsWith( "{" );
243286
}
244287

288+
@EnabledOnOs( OS.WINDOWS )
289+
@ParameterizedTest
290+
@MethodSource( value = "allVersions" )
291+
public void testJsonSchemaToFileWithExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
292+
final File outputDir = outputDirectory.toFile();
293+
createValidArgsExecution( metaModelVersion, "to", "schema", "-o", getPathForArtifact( "AspectWithEntity.schema.json" ),
294+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
295+
validateFile( outputDir, "AspectWithEntity.schema.json" );
296+
}
297+
245298
@ParameterizedTest
246299
@MethodSource( value = "allVersions" )
247300
public void testGenerateAspectModelJavaClassWithDefaultPackageName( final KnownVersion metaModelVersion ) {
@@ -256,6 +309,22 @@ public void testGenerateAspectModelJavaClassWithDefaultPackageName( final KnownV
256309
validateFile( directory, "TestEntity.java" );
257310
}
258311

312+
@EnabledOnOs( OS.WINDOWS )
313+
@ParameterizedTest
314+
@MethodSource( value = "allVersions" )
315+
public void testGenerateAspectModelJavaClassWithDefaultPackageNameAndExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
316+
final File outputDir = outputDirectory.toFile();
317+
318+
createValidArgsExecution( metaModelVersion, "to", "java", "-d", outputDirectory.toString(),
319+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
320+
final File directory = Paths.get( outputDir.getAbsolutePath(), "io", "openmanufacturing", "test" ).toFile();
321+
assertThat( directory ).exists();
322+
assertThat( directory ).isDirectory();
323+
324+
validateFile( directory, "AspectWithEntity.java" );
325+
validateFile( directory, "TestEntity.java" );
326+
}
327+
259328
@ParameterizedTest
260329
@MethodSource( value = "allVersions" )
261330
public void testGenerateStaticMetaModelJavaClassWithDefaultPackageName( final KnownVersion metaModelVersion )
@@ -276,7 +345,14 @@ public void testGenerateStaticMetaModelJavaClassWithDefaultPackageName( final Kn
276345
public void testValidation( final KnownVersion metaModelVersion ) {
277346
createValidArgsExecution( metaModelVersion, "validate" );
278347
}
279-
348+
349+
@EnabledOnOs( OS.WINDOWS )
350+
@ParameterizedTest
351+
@MethodSource( value = "allVersions" )
352+
public void testValidationWithCustomResolver( final KnownVersion metaModelVersion ) throws IOException, URISyntaxException {
353+
createValidArgsExecution( metaModelVersion, "validate", "--custom-resolver", getResolverCommand( metaModelVersion ) );
354+
}
355+
280356
@ParameterizedTest
281357
@MethodSource( value = "allVersions" )
282358
public void testPrettyPrintingToFile( final KnownVersion metaModelVersion ) {
@@ -371,6 +447,14 @@ public void testGenerateOpenApiSpecWithResourcePath( final KnownVersion metaMode
371447
createValidArgsExecution( metaModelVersion, "to", "openapi", "-j", "-b", "https://test.example.com", "-r", "my-aspect" );
372448
}
373449

450+
@EnabledOnOs( OS.WINDOWS )
451+
@ParameterizedTest
452+
@MethodSource( value = "allVersions" )
453+
public void testGenerateOpenApiSpecWithResourcePathAndExternalModelResolver( final KnownVersion metaModelVersion ) throws URISyntaxException {
454+
createValidArgsExecution( metaModelVersion, "to", "openapi", "-j", "-b", "https://test.example.com", "-r", "my-aspect",
455+
"--custom-resolver", getResolverCommand( metaModelVersion ) );
456+
}
457+
374458
private void createValidArgsExecution( final KnownVersion testedVersion, final String... args ) {
375459
assertThat( executeCommand( testedVersion, args ) ).isEqualTo( 0 );
376460
}
@@ -493,4 +577,11 @@ private Path findTestsJar( final Path searchDirectory ) throws IOException {
493577
.get();
494578
}
495579
}
580+
581+
private String getResolverCommand( final KnownVersion metaModelVersion ) throws URISyntaxException {
582+
final Path targetDirectory = Paths.get( getClass().getResource( "/" ).toURI() ).getParent();
583+
final Path testClasses = Paths.get( targetDirectory.toString(), "test-classes" );
584+
final Path modelsRoot = Paths.get( targetDirectory.toString(), "classes", "valid" );
585+
return testClasses + "\\model_resolver.bat " + modelsRoot + " " + metaModelVersion.toString().toLowerCase();
586+
}
496587
}

tools/bamm-cli/src/test/java/io/openmanufacturing/sds/DelegatingCommandResolver.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
public class DelegatingCommandResolver {
2929

3030
public static void main( final String[] args ) throws URISyntaxException {
31-
System.out.println( args[0] + ", " + args[1] );
3231
final Path target = Paths.get( DelegatingCommandResolver.class.getResource( "/" ).toURI() ).getParent();
3332
final Path modelsRoot = Paths.get( target.toString(), "classes", "valid", args[0] );
3433
final AspectModelUrn urn = AspectModelUrn.fromUrn( args[1] );
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@echo off
2+
set "root=%~1"
3+
set "bamm_ver=%~2"
4+
set "model_urn=%~3"
5+
6+
set no_bamm_urn=%model_urn:urn:bamm:=%
7+
set path=%no_bamm_urn::=\%
8+
set path=%path:#=\%
9+
set path=%root%\%bamm_ver%\%path%.ttl
10+
11+
type %path%

0 commit comments

Comments
 (0)