use of io.confluent.ksql.test.model.PathLocation in project ksql by confluentinc.
the class TestCasePlanLoader method buildStatementsInTestCase.
private static TestCasePlan buildStatementsInTestCase(final TestCase testCase, final KsqlVersion version, final long timestamp, final Map<String, String> configs, final String simpleTestName, final boolean validateResults) {
final TestInfoGatherer testInfo = executeTestCaseAndGatherInfo(testCase, validateResults);
final List<TopicNode> allTopicNodes = getTopicsFromTestCase(testCase, configs);
final TestCaseNode testCodeNode = new TestCaseNode(simpleTestName, Optional.empty(), ImmutableList.of(), testCase.getInputRecords().stream().map(RecordNode::from).collect(Collectors.toList()), testCase.getOutputRecords().stream().map(RecordNode::from).collect(Collectors.toList()), allTopicNodes, testCase.statements(), testCase.properties(), null, testCase.getPostConditions().asNode(testInfo.getTopics(), testInfo.getSources()), true);
final TestCaseSpecNode spec = new TestCaseSpecNode(version.getVersion().toString(), timestamp, testCase.getOriginalFileName().toString(), testInfo.getSchemas(), testCodeNode);
final TestCasePlanNode plan = new TestCasePlanNode(testInfo.getPlans(), configs);
return new TestCasePlan(// not used
new PathLocation(Paths.get("").toAbsolutePath()), spec, plan, testInfo.getTopologyDescription());
}
use of io.confluent.ksql.test.model.PathLocation in project ksql by confluentinc.
the class TestCasePlanLoader method parseSpec.
private static TestCasePlan parseSpec(final PlannedTestPath versionDir) {
final PlannedTestPath planPath = versionDir.resolve(PlannedTestPath.PLAN_FILE);
final PlannedTestPath specPath = versionDir.resolve(PlannedTestPath.SPEC_FILE);
final PlannedTestPath topologyPath = versionDir.resolve(PlannedTestPath.TOPOLOGY_FILE);
return new TestCasePlan(new PathLocation(versionDir.absolutePath()), parseJson(specPath, JsonTestLoader.OBJECT_MAPPER, TestCaseSpecNode.class), parseJson(planPath, PlannedTestUtils.PLAN_MAPPER, TestCasePlanNode.class), slurp(topologyPath));
}
use of io.confluent.ksql.test.model.PathLocation in project ksql by confluentinc.
the class KsqlTestingTool method runWithTripleFiles.
static void runWithTripleFiles(final String statementFile, final String inputFile, final String outputFile, final Optional<String> extensionDir) throws Exception {
final InputRecordsNode inputRecordNodes;
final OutputRecordsNode outRecordNodes;
try {
inputRecordNodes = (inputFile == null) ? null : OBJECT_MAPPER.readValue(new File(inputFile), InputRecordsNode.class);
} catch (final Exception inputException) {
throw new Exception("File name: " + inputFile + " Message: " + inputException.getMessage());
}
try {
outRecordNodes = OBJECT_MAPPER.readValue(new File(outputFile), OutputRecordsNode.class);
} catch (final Exception outputException) {
throw new Exception("File name: " + outputFile + " Message: " + outputException.getMessage());
}
final Path stmtsPath = Paths.get(statementFile);
final List<String> statements = getSqlStatements(stmtsPath);
final TestCaseNode testCaseNode = new TestCaseNode("KSQL_Test", Optional.empty(), null, (inputFile == null) ? null : inputRecordNodes.getInputRecords(), outRecordNodes.getOutputRecords(), Collections.emptyList(), statements, null, null, null, true);
final PathLocation location = new PathLocation(stmtsPath.toAbsolutePath());
final TestCase testCase = TestCaseBuilder.buildTests(testCaseNode, location.getTestPath(), name -> location).get(0);
executeTestCase(testCase, TestExecutor.create(true, extensionDir));
}
Aggregations