/** * Deserializes {@link ConjureDefinition} from their YAML representations in the given files. */ public static ConjureDefinition parse(Collection<File> files) { return ConjureParserUtils.parseConjureDef( files.stream().map(ConjureParser::parse).collect(Collectors.toList())); } }
@Test public void resolvesImportedAliases() { ConjureDefinition conjureDefinition = ConjureParserUtils.parseConjureDef( ImmutableList.of(ConjureParser.parse(new File("src/test/resources/example-conjure-imports.yml")))); assertThat(conjureDefinition.getTypes()).hasSize(1); }
@Test @Ignore public void handlesNonJavaExternalType() { ConjureDefinition conjureDefinition = ConjureParserUtils.parseConjureDef( ImmutableList.of(ConjureParser.parse(new File("src/test/resources/example-external-types.yml")))); } }
@Test public void testConjureSpec() { // test positive cases testCaseDef.positive().orElse(new TreeMap<>()).entrySet().stream().forEach(entry -> { String testName = String.format("positive case %s", entry.getKey()); String yml = getYmlAsString(testName, entry.getValue().conjure()); try { ConjureParserUtils.parseConjureDef(ImmutableList.of(MAPPER.readValue(yml, ConjureSourceFile.class))); } catch (Exception e) { Assertions.fail("Conjure for case should be valid according to the spec: " + testName, e); } }); // test negative cases testCaseDef.negative().orElse(new TreeMap<>()).entrySet().stream().forEach(entry -> { String testName = String.format("negative case %s", entry.getKey()); String yml = getYmlAsString(testName, entry.getValue().conjure()); try { ConjureParserUtils.parseConjureDef(ImmutableList.of(MAPPER.readValue(yml, ConjureSourceFile.class))); Assertions.fail("Conjure for case should be invalid according to the spec: " + testName); } catch (Exception e) { Assertions.assertThat(e).withFailMessage("Failure message for case did not match expectation: " + testName + "\nMessage:\n" + e.getMessage() + "\ndid not contain:\n" + entry.getValue().expectedError()).hasMessageContaining(entry.getValue().expectedError()); } }); }