From 3cae4bd4e949eede9cde0707daa2cff16cc64373 Mon Sep 17 00:00:00 2001 From: juvester Date: Fri, 1 Jul 2016 10:27:58 +0300 Subject: [PATCH] Print validation results in submit --- .../helsinki/cs/tmc/cli/io/ResultPrinter.java | 6 ++++- .../cs/tmc/cli/io/ResultPrinterTest.java | 25 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/fi/helsinki/cs/tmc/cli/io/ResultPrinter.java b/src/main/java/fi/helsinki/cs/tmc/cli/io/ResultPrinter.java index 6b63de9f..e733bf4f 100644 --- a/src/main/java/fi/helsinki/cs/tmc/cli/io/ResultPrinter.java +++ b/src/main/java/fi/helsinki/cs/tmc/cli/io/ResultPrinter.java @@ -257,7 +257,11 @@ private void printFailedSubmissionResult(SubmissionResult submResult, boolean pr io.println(valgrind); totalTests++; } - // TODO: check validations when it's fixed in tmc-core (hangs atm if validation fails) + + if (submResult.validationsFailed()) { + printValidationErrors(submResult.getValidationResult()); + totalTests++; + } io.println("Test results: " + passedTests + "/" + totalTests + " tests passed"); if (printResultBar) { diff --git a/src/test/java/fi/helsinki/cs/tmc/cli/io/ResultPrinterTest.java b/src/test/java/fi/helsinki/cs/tmc/cli/io/ResultPrinterTest.java index f911c05f..1bca573b 100644 --- a/src/test/java/fi/helsinki/cs/tmc/cli/io/ResultPrinterTest.java +++ b/src/test/java/fi/helsinki/cs/tmc/cli/io/ResultPrinterTest.java @@ -7,6 +7,7 @@ import fi.helsinki.cs.tmc.core.domain.submission.SubmissionResult.TestResultStatus; import fi.helsinki.cs.tmc.core.domain.submission.ValidationErrorImpl; import fi.helsinki.cs.tmc.core.domain.submission.ValidationResultImpl; +import fi.helsinki.cs.tmc.langs.abstraction.Strategy; import fi.helsinki.cs.tmc.langs.abstraction.ValidationError; import fi.helsinki.cs.tmc.langs.domain.RunResult; import fi.helsinki.cs.tmc.langs.domain.RunResult.Status; @@ -137,7 +138,7 @@ public void printLocalTestResultIfCompilationFail() { } @Test - public void printValidationErrors() { + public void printValidationErrorsInLocalTests() { testResults = ImmutableList.of(new TestResult("test1", true, "Cool!")); runResult = new RunResult(Status.PASSED, testResults, logs); @@ -153,4 +154,26 @@ public void printValidationErrors() { printer.printLocalTestResult(runResult, valResult, false); io.assertContains("validation error"); } + + @Test + public void printValidationErrorsInSubmit() { + ValidationErrorImpl error = new ValidationErrorImpl(); + error.setMessage("Incorrect indentation"); + + File file = new File("Test.java"); + Map valErrors = new HashMap<>(); + valErrors.put(file, ImmutableList.of((ValidationError) error)); + + ValidationResultImpl valResult = new ValidationResultImpl(); + valResult.setStrategy(Strategy.FAIL); + valResult.setValidationErrors(valErrors); + + SubmissionResult subResult = new SubmissionResult(); + subResult.setStatus(SubmissionResult.Status.FAIL); + subResult.setValidationResult(valResult); + + printer.printSubmissionResult(subResult, false); + io.assertContains("Validation error:"); + io.assertContains("Incorrect indentation"); + } }