Skip to content

Commit a098c73

Browse files
committed
Display send to server dialog when tests pass
1 parent 98fe4ce commit a098c73

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

tmc-plugin/src/fi/helsinki/cs/tmc/actions/RunTestsLocallyAction.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import fi.helsinki.cs.tmc.core.domain.ProgressObserver;
66
import fi.helsinki.cs.tmc.coreimpl.BridgingProgressObserver;
77
import fi.helsinki.cs.tmc.data.ResultCollector;
8+
import fi.helsinki.cs.tmc.exerciseSubmitter.ExerciseSubmitter;
89
import fi.helsinki.cs.tmc.langs.abstraction.ValidationResult;
910
import fi.helsinki.cs.tmc.langs.domain.RunResult;
1011
import fi.helsinki.cs.tmc.model.CourseDb;
1112
import fi.helsinki.cs.tmc.model.ProjectMediator;
1213
import fi.helsinki.cs.tmc.model.SourceFileLookup;
14+
import fi.helsinki.cs.tmc.ui.TestResultDisplayer;
1315
import fi.helsinki.cs.tmc.utilities.BgTask;
1416
import fi.helsinki.cs.tmc.utilities.BgTaskListener;
1517

@@ -30,10 +32,14 @@ public class RunTestsLocallyAction extends AbstractExerciseSensitiveAction imple
3032
private CourseDb courseDb;
3133
private ProjectMediator projectMediator;
3234
private Project project;
35+
private TestResultDisplayer resultDisplayer;
36+
private ExerciseSubmitter exerciseSubmitter;
3337

3438
public RunTestsLocallyAction() {
3539
this.courseDb = CourseDb.getInstance();
3640
this.projectMediator = ProjectMediator.getInstance();
41+
this.resultDisplayer = TestResultDisplayer.getInstance();
42+
this.exerciseSubmitter = new ExerciseSubmitter();
3743

3844
putValue("noIconInMenu", Boolean.TRUE);
3945
}
@@ -77,7 +83,7 @@ protected boolean enabledFor(Exercise exercise) {
7783

7884
@Override
7985
public void run() {
80-
Exercise exercise = exerciseForProject(project);
86+
final Exercise exercise = exerciseForProject(project);
8187

8288
projectMediator.saveAllFiles();
8389
final ResultCollector resultCollector = new ResultCollector(exercise);
@@ -89,7 +95,14 @@ public void run() {
8995
@Override
9096
public void bgTaskReady(RunResult result) {
9197
log.log(Level.INFO, "Got test results: {0}", result);
92-
resultCollector.setLocalTestResults(result);
98+
99+
boolean canSubmitExercise = exercise.isReturnable();
100+
resultDisplayer.showLocalRunResult(result, canSubmitExercise, new Runnable() {
101+
@Override
102+
public void run() {
103+
exerciseSubmitter.performAction(project);
104+
}
105+
}, resultCollector);
93106
}
94107

95108
@Override

tmc-plugin/src/fi/helsinki/cs/tmc/data/ResultCollector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ private synchronized void showResultsIfReady() {
8585

8686
boolean ready = dontWaitForValidations || (testCaseResultsSet && validationResultsSet);
8787
if (ready) {
88-
TestResultWindow.get().showResults(exercise, testCaseResults, validationResults, submissionCallback, isSubmittable());
88+
final boolean submittable = isSubmittable();
89+
TestResultWindow.get().showResults(exercise, testCaseResults, validationResults, submissionCallback, submittable);
8990
}
9091
}
9192

tmc-plugin/src/fi/helsinki/cs/tmc/ui/TestResultDisplayer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import fi.helsinki.cs.tmc.testrunner.TestCase;
1515

1616
import com.google.common.collect.ImmutableList;
17+
import fi.helsinki.cs.tmc.langs.domain.RunResult;
1718
import java.awt.Dialog;
1819
import java.awt.event.ActionEvent;
1920
import java.awt.event.ActionListener;
@@ -142,14 +143,14 @@ private void displayFailedTestsMsg(Exercise exercise, SubmissionResult result) {
142143
/**
143144
* Shows local results and calls the callback if a submission should be started.
144145
*/
145-
public void showLocalRunResult(final ImmutableList<TestResult> results,
146+
public void showLocalRunResult(final RunResult runResult,
146147
final boolean returnable,
147148
final Runnable submissionCallback,
148149
final ResultCollector resultCollector) {
149150

150151
resultCollector.setSubmissionCallback(submissionCallback);
151-
152-
displayTestCases(results, returnable, resultCollector);
152+
resultCollector.setReturnable(returnable);
153+
resultCollector.setLocalTestResults(runResult);
153154
}
154155

155156
private void displayError(String error) {

0 commit comments

Comments
 (0)