Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

Commit d09aa73

Browse files
author
Aleksi Salmela
committed
Detect duplicates at work dir.
1 parent c9b1953 commit d09aa73

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

src/main/java/fi/helsinki/cs/tmc/cli/io/WorkDir.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ public List<Exercise> getExercises(boolean exists, boolean onlyTested) {
104104
exDir = exDir.replace(File.separator, "-");
105105

106106
for (Exercise exercise : allExercises) {
107+
if (exercises.contains(exercise)) {
108+
continue;
109+
}
107110
if ((exercise.getName().startsWith(exDir)
108111
|| exDir.startsWith(exercise.getName()))) {
109112
if (filterExercise(exercise, locallyTested, exists, onlyTested)) {

src/test/java/fi/helsinki/cs/tmc/cli/io/WorkDirTest.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,16 @@ public void worksIfInSubSubDirectoryWithNoParams() {
179179
}
180180

181181
@Test
182-
public void worksIfInCourseDirectoryWithParams() {
182+
public void addInvalidPath() {
183+
WorkDir workDir = new WorkDir();
184+
workDir.setWorkdir(TEST_DIR);
185+
workDir.addPath("teht1");
186+
List<Exercise> exercises = workDir.getExercises();
187+
assertEquals(0, exercises.size());
188+
}
189+
190+
@Test
191+
public void addTwoExercises() {
183192
WorkDir workDir = new WorkDir();
184193
workDir.setWorkdir(TEST_DIR);
185194
workDir.addPath("viikko2-teht2");
@@ -191,13 +200,20 @@ public void worksIfInCourseDirectoryWithParams() {
191200
assertFalse(exercises.contains(exercise1));
192201
assertTrue(exercises.contains(exercise2));
193202
assertTrue(exercises.contains(exercise3));
194-
workDir = new WorkDir();
203+
}
204+
205+
@Test
206+
public void addSamePathTwice() {
207+
WorkDir workDir = new WorkDir();
195208
workDir.setWorkdir(TEST_DIR);
196-
workDir.addPath("teht1");
197-
exercises = workDir.getExercises(true, false);
198-
assertEquals(0, exercises.size());
209+
workDir.addPath("viikko2-teht2");
210+
workDir.addPath("viikko2-teht2");
211+
assertEquals(TEST_DIR.resolve(CourseInfoIo.COURSE_CONFIG),
212+
workDir.getConfigFile());
213+
List<Exercise> exercises = workDir.getExercises();
214+
assertEquals(1, exercises.size());
199215
assertFalse(exercises.contains(exercise1));
200-
assertFalse(exercises.contains(exercise2));
216+
assertTrue(exercises.contains(exercise2));
201217
assertFalse(exercises.contains(exercise3));
202218
}
203219

0 commit comments

Comments
 (0)