diff --git a/src/main/java/de/joethei/hs/java2/praktikum/praktikum3/Vorlesungsverzeichnis.java b/src/main/java/de/joethei/hs/java2/praktikum/praktikum3/Vorlesungsverzeichnis.java index f2d87ff..93e8482 100644 --- a/src/main/java/de/joethei/hs/java2/praktikum/praktikum3/Vorlesungsverzeichnis.java +++ b/src/main/java/de/joethei/hs/java2/praktikum/praktikum3/Vorlesungsverzeichnis.java @@ -43,6 +43,7 @@ public class Vorlesungsverzeichnis { for(String name:s) { list.remove(name); } + Collections.sort(list); return new HashSet<>(list); } @@ -59,6 +60,7 @@ public class Vorlesungsverzeichnis { list.add(v.getTitle()); } } + Collections.sort(list); map.put(gruppe, list); list = new ArrayList<>(); } diff --git a/src/test/java/de/joethei/hs/java2/tests/VorlesungsverzeichnisTest.java b/src/test/java/de/joethei/hs/java2/tests/VorlesungsverzeichnisTest.java index 9eadf8b..c9c3574 100644 --- a/src/test/java/de/joethei/hs/java2/tests/VorlesungsverzeichnisTest.java +++ b/src/test/java/de/joethei/hs/java2/tests/VorlesungsverzeichnisTest.java @@ -1,17 +1,29 @@ package de.joethei.hs.java2.tests; import de.joethei.hs.java2.praktikum.praktikum3.Vorlesungsverzeichnis; +import org.junit.Before; import org.junit.Test; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; public class VorlesungsverzeichnisTest { + private Vorlesungsverzeichnis vorlesungsverzeichnis; + + @Before + public void before() { + try { + vorlesungsverzeichnis = new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("vorlesungen.txt")).getFile()); + } catch (IOException e) { + e.printStackTrace(); + } + + } + @Test(expected = IOException.class) public void constructors() throws IOException { new Vorlesungsverzeichnis("HalloWelt"); @@ -19,25 +31,73 @@ public class VorlesungsverzeichnisTest { @Test public void titles() { - try { - Vorlesungsverzeichnis vorlesungsverzeichnis = new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("vorlesungen.txt")).getFile()); - List titles = new ArrayList<>(); - titles.add("Algorithmen und Datenstrukturen"); - titles.add("Audio-/Videotechnik"); - titles.add("Java 2"); - titles.add("Mathematik 2"); - titles.add("Mathematik 2"); - titles.add("Rechnerarchitekturen"); + List titles = new ArrayList<>(); + titles.add("Algorithmen und Datenstrukturen"); + titles.add("Audio-/Videotechnik"); + titles.add("Java 2"); + titles.add("Mathematik 2"); + titles.add("Mathematik 2"); + titles.add("Rechnerarchitekturen"); - assertEquals(vorlesungsverzeichnis.titles(), titles); + assertEquals(vorlesungsverzeichnis.titles(), titles); - titles.add("Hallo Welt"); - assertNotEquals(vorlesungsverzeichnis.titles(), titles); - - } catch (IOException e) { - e.printStackTrace(); - } + titles.add("Hallo Welt"); + assertNotEquals(vorlesungsverzeichnis.titles(), titles); } + @Test + public void workaholics() { + Set set = new HashSet<>(); + set.add("von Coelln"); + assertEquals(vorlesungsverzeichnis.workaholics(), set); + } + + @Test + public void groupToTitles() { + Map> map = vorlesungsverzeichnis.groupToTitles(); + + List mt2 = new ArrayList<>(); + mt2.add("Audio-/Videotechnik"); + mt2.add("Mathematik 2"); + + List e2 = new ArrayList<>(); + e2.add("Mathematik 2"); + + List i2 = new ArrayList<>(); + i2.add("Algorithmen und Datenstrukturen"); + i2.add("Java 2"); + + List i4 = new ArrayList<>(); + i4.add("Rechnerarchitekturen"); + + assertEquals(mt2, map.get("MT2")); + assertEquals(e2, map.get("E2")); + assertEquals(i2, map.get("I2")); + assertEquals(i4, map.get("I4")); + } + + @Test + public void multipleTitles() { + Map> map = vorlesungsverzeichnis.multipleTitles(); + + List math = new ArrayList<>(); + math.add("von Coelln"); + math.add("Rabe"); + + assertEquals(map.get("Mathematik 2"), math); + } + + @Test + public void descendingTitles() { + List list = new ArrayList<>(); + list.add("Java 2"); + list.add("Algorithmen und Datenstrukturen"); + list.add("Mathematik 2"); + list.add("Mathematik 2"); + list.add("Audio-/Videotechnik"); + list.add("Rechnerarchitekturen"); + + assertEquals(list, vorlesungsverzeichnis.descendingTitles()); + } } \ No newline at end of file