66
77import fi .helsinki .cs .tmc .langs .domain .ExerciseDesc ;
88import fi .helsinki .cs .tmc .langs .domain .RunResult ;
9+ import fi .helsinki .cs .tmc .langs .domain .TestDesc ;
910import fi .helsinki .cs .tmc .langs .utils .TestUtils ;
1011
1112import com .google .common .base .Optional ;
1415
1516import java .nio .file .Path ;
1617
17-
1818public class QmakePluginTest {
1919
2020 private final QmakePlugin qmakePlugin ;
@@ -29,39 +29,104 @@ public void testGetLanguageName() {
2929 }
3030
3131 @ Test
32- public void testQtBuildFailingWithNoLib () {
33- assertEquals (RunResult .Status .PASSED , runTests ("passing_nolib" ));
32+ public void testQtTestsPassingWithNoLib () {
33+ assertEquals ("Tests passing with no library" ,
34+ RunResult .Status .PASSED ,
35+ runTests ("passing_nolib" ));
36+ }
37+
38+ @ Test
39+ public void testQtTestsPassingWithNoLibSamePoints () {
40+ assertEquals ("Tests passing with no library and same points" ,
41+ RunResult .Status .PASSED ,
42+ runTests ("passing_nolib_same_point" ));
43+ }
44+
45+ @ Test
46+ public void testQtTestsPassingWithMultipleLib () {
47+ assertEquals ("Tests passing with multiple libraries" ,
48+ RunResult .Status .PASSED ,
49+ runTests ("passing_multiple_lib" ));
3450 }
3551
3652 @ Test
3753 public void testQtBuildFailingWithSingleLib () {
38- assertEquals ("Failing compile with single lib" ,
54+ assertEquals ("Student source not compiling with compiling single lib" ,
3955 RunResult .Status .COMPILE_FAILED ,
4056 runTests ("failing_compile_single_lib_compiling" ));
4157 }
4258
59+ @ Test
60+ public void testQtFailingSingleLib () {
61+ assertEquals ("Tests failing with single library" ,
62+ RunResult .Status .TESTS_FAILED ,
63+ runTests ("failing_single_lib" ));
64+ }
65+
4366 @ Test
4467 public void testQtLibBuildFailing () {
45- assertEquals (RunResult .Status .COMPILE_FAILED , runTests ("failing_single_lib_not_compiling" ));
68+ assertEquals ("Student source compiling with library not compiling " ,
69+ RunResult .Status .COMPILE_FAILED ,
70+ runTests ("failing_single_lib_not_compiling" ));
4671 }
4772
4873 @ Test
4974 public void testQTestsFailingNoLib () {
50- assertEquals (RunResult .Status .TESTS_FAILED , runTests ("failing_nolib" ));
75+ assertEquals ("Tests fail with no library" ,
76+ RunResult .Status .TESTS_FAILED ,
77+ runTests ("failing_nolib" ));
5178 }
5279
5380 @ Test
5481 public void testQtTestsPassingSingleLib () {
55- assertEquals (RunResult .Status .PASSED , runTests ("passing_single_lib" ));
82+ assertEquals ("Tests pass with single library" ,
83+ RunResult .Status .PASSED ,
84+ runTests ("passing_single_lib" ));
5685 }
5786
5887 @ Test
5988 public void testQtTestsFailingNoLibSamePoints () {
60- assertEquals ("Failing no library" ,
89+ assertEquals ("Failing suite test with no library" ,
6190 RunResult .Status .TESTS_FAILED ,
6291 runTests ("failing_nolib_same_point" ));
6392 }
6493
94+ @ Test
95+ public void testQtTestsInvalidProFile () {
96+ assertEquals ("Invalid .pro file does not compile" ,
97+ RunResult .Status .COMPILE_FAILED ,
98+ runTests ("invalid_pro_file" ));
99+ }
100+
101+ @ Test
102+ public void testScanInvalidMakefileExercise () {
103+ Optional <ExerciseDesc > optional = scanExercise ("makefile" );
104+ assertFalse (optional .isPresent ());
105+ }
106+
107+ @ Test
108+ public void testScanExerciseWithPassingSamePoints () {
109+ Optional <ExerciseDesc > optional = scanExercise ("passing_single_lib" );
110+ assertTrue (optional .isPresent ());
111+
112+ ExerciseDesc desc = optional .get ();
113+
114+ assertEquals ("passing_single_lib" , desc .name );
115+
116+ assertEquals (2 , desc .tests .size ());
117+ TestDesc test1 = desc .tests .get (1 );
118+ TestDesc test2 = desc .tests .get (0 );
119+
120+ assertEquals ("test_function_one_here" , test1 .name );
121+ assertEquals ("test_function_two_here" , test2 .name );
122+
123+ assertEquals (1 , test1 .points .size ());
124+ assertEquals ("1" , test1 .points .get (0 ));
125+
126+ assertEquals (1 , test2 .points .size ());
127+ assertEquals ("2" , test2 .points .get (0 ));
128+ }
129+
65130 @ Test
66131 public void testScanExerciseWithFailingSamePoints () {
67132 Optional <ExerciseDesc > optional = scanExercise ("failing_single_lib_same_point" );
@@ -72,10 +137,21 @@ public void testScanExerciseWithFailingSamePoints() {
72137 assertEquals ("failing_single_lib_same_point" , desc .name );
73138
74139 assertEquals (3 , desc .tests .size ());
75- assertEquals ("test_function_two_here" , desc .tests .get (0 ).name );
140+ TestDesc test2 = desc .tests .get (0 );
141+ TestDesc test21 = desc .tests .get (1 );
142+ TestDesc test1 = desc .tests .get (2 );
143+
144+ assertEquals ("test_function_one_here" , test1 .name );
145+ assertEquals ("test_function_two_here" , test2 .name );
146+ assertEquals ("test_function_two_here_2" , test21 .name );
76147
77- assertEquals (1 , desc .tests .get (0 ).points .size ());
78- assertEquals ("2" , desc .tests .get (0 ).points .get (0 ));
148+ assertEquals (1 , test1 .points .size ());
149+ assertEquals (1 , test2 .points .size ());
150+ assertEquals (1 , test21 .points .size ());
151+
152+ assertEquals ("1" , test1 .points .get (0 ));
153+ assertEquals ("2" , test2 .points .get (0 ));
154+ assertEquals ("1" , test21 .points .get (0 ));
79155 }
80156
81157 @ Test
@@ -88,12 +164,12 @@ public void testIsExerciseTypeCorrect() {
88164 assertTrue (isExerciseTypeCorrect ("passing_multiple_lib" ));
89165 assertTrue (isExerciseTypeCorrect ("passing_multiple_lib_same_point" ));
90166
91- assertTrue (isExerciseTypeCorrect ("failing_single_lib_not_compiling" ));
92167 assertTrue (isExerciseTypeCorrect ("failing_nolib" ));
93168 assertTrue (isExerciseTypeCorrect ("failing_nolib_same_point" ));
94169 assertTrue (isExerciseTypeCorrect ("failing_single_lib" ));
95170 assertTrue (isExerciseTypeCorrect ("failing_single_lib_not_compiling" ));
96171 assertTrue (isExerciseTypeCorrect ("failing_single_lib_same_point" ));
172+ assertFalse (isExerciseTypeCorrect ("makefile" ));
97173 assertFalse (isExerciseTypeCorrect ("" ));
98174 }
99175
0 commit comments