p2/src/DN09Test03.java
Gašper Dobrovoljc 3702347f5d
DN09 - Naloga 1-4
2024-05-10 00:12:13 +02:00

130 lines
4.1 KiB
Java

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
public class DN09Test03 {
Tekmovanje miniTekmovanje;
Tekmovanje praznoTekmovanje;
@Before
public void init() {
ArrayList<Tekmovalec> seznamTekmovalcev = new ArrayList<>(Arrays.asList(
new Tekmovalec("Češka", "Vesna", "My Sister's Crown"),
new Tekmovalec("Armenija", "Brunette", "Future Lover"),
new Tekmovalec("Islandija", "Diljá", "Power")
));
ArrayList<Glas> seznamGlasov = new ArrayList<>(Arrays.asList(
new Glas("Češka", "Islandija", 6),
new Glas("Armenija", "Islandija", 6),
new Glas("Armenija", "Češka", 4),
new Glas("Islandija", "Češka", 0)
));
miniTekmovanje = new Tekmovanje(seznamTekmovalcev, seznamGlasov);
// Prazno tekmovanje
praznoTekmovanje = new Tekmovanje(new ArrayList<>(), new ArrayList<>());
}
@Test
public void testIzpisZmagovalca() {
// Testira izpis zmagovalca
Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
OsnovniKriterij k = new OsnovniKriterij();
tekmovanje.setKriterij(k);
Tekmovalec zmagovalec = tekmovanje.getZmagovalec();
Assert.assertEquals(zmagovalec.getDrzava(), "Švedska");
Assert.assertEquals(miniTekmovanje.getZmagovalec().getDrzava(), "Islandija");
}
@Test
public void testMestoDrzave() {
// Testira mesto države
Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
OsnovniKriterij k = new OsnovniKriterij();
tekmovanje.setKriterij(k);
int mesto = tekmovanje.getMesto("Nizozemska");
Assert.assertEquals(mesto, 32);
// Za manjkajoce drzave metoda vrne -1
int mesto2 = tekmovanje.getMesto("Slovenijaaaa");
Assert.assertEquals(mesto2, -1);
int mesto3 = tekmovanje.getMesto("Slovenija");
Assert.assertEquals(mesto3, 21);
}
@Test
public void testIzpisNajboljsihDrzav() {
// Testira izpis najboljših držav
PrintStream orig = System.out;
final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
System.setOut(new PrintStream(myOut));
Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
OsnovniKriterij k = new OsnovniKriterij();
tekmovanje.setKriterij(k);
tekmovanje.izpisiRezultateUrejeno(5);
final String stdOut = myOut.toString();
System.setOut(orig);
String expected = "Najboljse uvrsceni tekmovalci:\n" +
"1. (Švedska) Loreen - Tattoo: 583t\n" +
"2. (Finska) Käärijä - Cha Cha Cha: 526t\n" +
"3. (Izrael) Noa Kirel - Unicorn: 362t\n" +
"4. (Italija) Marco Mengoni - Due vite: 350t\n" +
"5. (Norveška) Alessandra - Queen of Kings: 268t\n";
Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
}
@Test
public void testIzpisNajboljsihDrzav2() {
// Testira izpis, ce je držav vec kot argument funkcije
PrintStream orig = System.out;
final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
System.setOut(new PrintStream(myOut));
OsnovniKriterij k = new OsnovniKriterij();
miniTekmovanje.setKriterij(k);
miniTekmovanje.izpisiRezultateUrejeno(5);
final String stdOut = myOut.toString();
System.setOut(orig);
String expected = "Najboljse uvrsceni tekmovalci:\n" +
"1. (Islandija) Diljá - Power: 12t\n" +
"2. (Češka) Vesna - My Sister's Crown: 4t\n" +
"3. (Armenija) Brunette - Future Lover: 0t\n";
Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
}
}