package cz.muni.fi.rtc.ISImporter.tests;
import static org.junit.Assert.*;
import java.io.Reader;
import java.io.StringReader;
import java.util.HashSet;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import cz.muni.fi.rtc.ISImporter.ISPersonImporter;
import cz.muni.fi.rtc.teacherWorkbench.model.ImportedPerson;
import cz.muni.fi.rtc.teacherWorkbench.model.ImportedPersonImpl;
public class ISPersonImporterTest {
private ISPersonImporter importer;
private ImportedPersonImpl person1;
private String person1String;
private String morePeopleString;
@Before
public void setUp() throws Exception {
importer = new ISPersonImporter();
person1 = new ImportedPersonImpl();
person1.setDescription("Batch imported user");
person1.setFirstName("FirstName");
person1.setLastName("LastName");
person1.setEmailAddress("1111@mail.muni.cz");
person1.setUID("1111");
person1String = "PA165\t1111\tLastName, FirstName\tz\tFI B-AP BcAP [sem 7, roč 4], PdF B-SPE MA3 [sem 1, roč 1], TE3 [sem 1, roč 1]";
morePeopleString = "PA165\tdemo222\tVáňa, Jan\tzk\tFI N-AP AP [sem 1, roč 1]\n"
+ "PA165\tdemo333\tVotýpková, Lucie\tzk\tFI B-AP BcAP [sem 7, roč 4]\n"
+ "PA165\tdemo444\tVystrčil, Radek\tzk\tFI N-AP AP [sem 1, roč 1]\n"
+ "PA165\tdemo555\tZajac, Jakub\tzk\tFI B-IN GRA [sem 3, roč 2]\n"
+ "PA165\tdemo666\tZaťko, Juraj\tzk\tPřF B-GE SPRG [sem 1, roč 1]\n"
+ "PA165\tdemo777\tŽupka, Pavel\tzk\tFI N-AP AP [sem 3, roč 2]\n";
}
@Test
public void testParseCSVOnePerson() {
Set expected = new HashSet();
expected.add(person1);
Reader reader = new StringReader(person1String);
importer.setReader(reader);
Set result = importer.getPeople();
assertTrue("The result does not contain person " + person1, result.contains(person1));
assertEquals(1, result.size());
assertArrayEquals(expected.toArray(), result.toArray());
for(ImportedPerson onlyPerson: result) {
assertEquals(onlyPerson.getFirstName(), person1.getFirstName());
assertEquals(onlyPerson.getLastName(), person1.getLastName());
assertEquals(onlyPerson.getDescription(), person1.getDescription());
assertEquals(onlyPerson.getEmailAddress(), person1.getEmailAddress());
assertEquals(onlyPerson.getUID(), person1.getUID());
}
}
@Test
public void testGeneratePasswords() {
Reader reader = new StringReader(morePeopleString);
importer.setReader(reader);
Set result = importer.getPeople();
for(ImportedPerson person: result) {
assertTrue(person.getRawPassword().length() > 0);
}
}
@Test
public void testMorePeople() {
Reader reader = new StringReader(morePeopleString);
importer.setReader(reader);
Set result = importer.getPeople();
assertEquals(6, result.size());
}
}