Praktikum 3: weitere Tests für Exceptions
This commit is contained in:
parent
950e9cfd0c
commit
05eb757005
|
@ -1,8 +1,6 @@
|
||||||
package de.joethei.hs.java2.praktikum.praktikum3;
|
package de.joethei.hs.java2.praktikum.praktikum3;
|
||||||
|
|
||||||
import java.io.IOException;
|
public class TextFileFormatException extends Exception{
|
||||||
|
|
||||||
public class TextFileFormatException extends IOException {
|
|
||||||
|
|
||||||
public TextFileFormatException(String s) {
|
public TextFileFormatException(String s) {
|
||||||
super(s);
|
super(s);
|
||||||
|
|
|
@ -10,7 +10,7 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
|
|
||||||
private Set<Vorlesung> vorlesungen = new HashSet<>();
|
private Set<Vorlesung> vorlesungen = new HashSet<>();
|
||||||
|
|
||||||
public Vorlesungsverzeichnis(String filename) throws IOException {
|
public Vorlesungsverzeichnis(String filename) throws IOException, TextFileFormatException {
|
||||||
List<List<String>> datenbasis = load(filename);
|
List<List<String>> datenbasis = load(filename);
|
||||||
for (List<String> entry : datenbasis) {
|
for (List<String> entry : datenbasis) {
|
||||||
if (entry.size() != 4) throw new TextFileFormatException("unexpected number of Strings in line");
|
if (entry.size() != 4) throw new TextFileFormatException("unexpected number of Strings in line");
|
||||||
|
@ -20,6 +20,12 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lädt die Datenbasis von einer Datei
|
||||||
|
* @param filename Dateiname
|
||||||
|
* @return Liste der Einträge
|
||||||
|
* @throws IOException Dateifehler
|
||||||
|
*/
|
||||||
private List<List<String>> load(String filename) throws IOException {
|
private List<List<String>> load(String filename) throws IOException {
|
||||||
List<List<String>> result = new ArrayList<>();
|
List<List<String>> result = new ArrayList<>();
|
||||||
BufferedReader br = new BufferedReader(new FileReader(filename));
|
BufferedReader br = new BufferedReader(new FileReader(filename));
|
||||||
|
@ -29,6 +35,9 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return eine alphabetisch sortierte Liste mit den Titeln aller Vorlesungen.
|
||||||
|
*/
|
||||||
public List<String> titles() {
|
public List<String> titles() {
|
||||||
/*
|
/*
|
||||||
List<String> list = new ArrayList<>();
|
List<String> list = new ArrayList<>();
|
||||||
|
@ -45,6 +54,9 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return die Menge derjenigen Dozenten, die zwei oder mehr Vorlesungen halten.
|
||||||
|
*/
|
||||||
public Set<String> workaholics() {
|
public Set<String> workaholics() {
|
||||||
/*
|
/*
|
||||||
Set<String> s = new HashSet<>();
|
Set<String> s = new HashSet<>();
|
||||||
|
@ -69,6 +81,9 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
return set;
|
return set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return eine Map, die Studiengruppen auf Listen von Vorlesungstiteln abbildet.
|
||||||
|
*/
|
||||||
public Map<String, List<String>> groupToTitles() {
|
public Map<String, List<String>> groupToTitles() {
|
||||||
/*
|
/*
|
||||||
Map<String, List<String>> map = new HashMap<>();
|
Map<String, List<String>> map = new HashMap<>();
|
||||||
|
@ -94,6 +109,10 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return eine Map, die Vorlesungen auf Listen von Dozenten, die diese Vorlesungen halten, abbildet.
|
||||||
|
* Als Schlüssel werden in der Map nur Vorlesungen verwendet, die von unterschiedlichen Dozenten gehalten werden.
|
||||||
|
*/
|
||||||
public Map<String, List<String>> multipleTitles() {
|
public Map<String, List<String>> multipleTitles() {
|
||||||
/*
|
/*
|
||||||
Map<String, List<String>> map = new HashMap<>();
|
Map<String, List<String>> map = new HashMap<>();
|
||||||
|
@ -131,6 +150,9 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Liste mit Vorlesungstitel absteigend sortiert nach Teilnehmerzahl
|
||||||
|
*/
|
||||||
public List<String> descendingTitles() {
|
public List<String> descendingTitles() {
|
||||||
/*
|
/*
|
||||||
List<String> l = new ArrayList<>();
|
List<String> l = new ArrayList<>();
|
||||||
|
@ -153,12 +175,16 @@ public class Vorlesungsverzeichnis implements Comparator<Vorlesung>{
|
||||||
SortedSet<Vorlesung> set = new TreeSet<>(this.reversed());
|
SortedSet<Vorlesung> set = new TreeSet<>(this.reversed());
|
||||||
set.addAll(vorlesungen);
|
set.addAll(vorlesungen);
|
||||||
|
|
||||||
|
|
||||||
List<String> list = new ArrayList<>();
|
List<String> list = new ArrayList<>();
|
||||||
set.forEach(vorlesung -> list.add(vorlesung.getTitle()));
|
set.forEach(vorlesung -> list.add(vorlesung.getTitle()));
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* für die aufsteigende Sortierung
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int compare(Vorlesung o1, Vorlesung o2) {
|
public int compare(Vorlesung o1, Vorlesung o2) {
|
||||||
return Integer.compare(o1.getTeilnehmerzahl(), o2.getTeilnehmerzahl());
|
return Integer.compare(o1.getTeilnehmerzahl(), o2.getTeilnehmerzahl());
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
I2:Java 2:Rump:100
|
||||||
|
I2:Algorithmen und Datenstrukturen:Totzauer:30
|
||||||
|
MT2::von Coelln:60
|
||||||
|
MT2:Audio-/Videotechnik:Lemke:50
|
||||||
|
E2:Mathematik 2:Rabe:20
|
||||||
|
I4:Rechnerarchitekturen:von Coelln:45
|
||||||
|
I4:Internet-Technologien:Rump:40
|
|
@ -0,0 +1,7 @@
|
||||||
|
I2:Java 2:Rump:100
|
||||||
|
I2:Algorithmen und Datenstrukturen:Totzauer:80
|
||||||
|
MT2:Mathematik 2:von Coelln:60
|
||||||
|
MT2:Audio-/Videotechnik:Lemke:5F
|
||||||
|
E2:Mathematik 2:Rabe:70
|
||||||
|
I4:Rechnerarchitekturen:von Coelln:45
|
||||||
|
I4:Internet-Technologien:Rump:40
|
|
@ -1,5 +1,6 @@
|
||||||
package de.joethei.hs.java2.tests;
|
package de.joethei.hs.java2.tests;
|
||||||
|
|
||||||
|
import de.joethei.hs.java2.praktikum.praktikum3.TextFileFormatException;
|
||||||
import de.joethei.hs.java2.praktikum.praktikum3.Vorlesungsverzeichnis;
|
import de.joethei.hs.java2.praktikum.praktikum3.Vorlesungsverzeichnis;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -17,18 +18,29 @@ public class VorlesungsverzeichnisTest {
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
try {
|
try {
|
||||||
vorlesungsverzeichnis = new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("vorlesungen.txt")).getFile());
|
vorlesungsverzeichnis = new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("praktikum3/vorlesungen.txt")).getFile());
|
||||||
} catch (IOException e) {
|
} catch (IOException | TextFileFormatException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = IOException.class)
|
@Test(expected = IOException.class)
|
||||||
public void constructors() throws IOException {
|
public void constructorIOException() throws IOException, TextFileFormatException {
|
||||||
new Vorlesungsverzeichnis("HalloWelt");
|
new Vorlesungsverzeichnis("HalloWelt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(expected = TextFileFormatException.class)
|
||||||
|
public void constructorTextFileFormatException() throws IOException, TextFileFormatException {
|
||||||
|
new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("praktikum3/vorlesungen-format.txt")).getFile());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NumberFormatException.class)
|
||||||
|
public void constructorNumberFormatException() throws IOException, TextFileFormatException {
|
||||||
|
new Vorlesungsverzeichnis(Objects.requireNonNull(getClass().getClassLoader().getResource("praktikum3/vorlesungen-number.txt")).getFile());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void titles() {
|
public void titles() {
|
||||||
List<String> titles = new ArrayList<>();
|
List<String> titles = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in New Issue