package cz.muni.fi.pv168.graves; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List; import java.util.TimeZone; import org.junit.Test; import static org.junit.Assert.*; /** * Poznamky k vytvareni testu: * 1. pro vytvareni novych instanci si definovat samostatnou metodu * private static Person newPerson(String name, String surname); * * 2. vytvareni data - konstruktory tridy date jsou deprecated * pouziva se Calendar nebo DateFormat * private static Date newDate(String date); * private static Date newDate1(int year, int month, int day); * * 3. vytvareni seznamu a kolekci * viz metoda test() * * 4. slozitejsi inicilizace, co kdyz neni potreba v kazdem testu * Vytori se private metoda, ktera se o to bude starat a * tech testech kde to bude potreba se to na zacatku zavola. * * 5. Pozor na poradi parametru assertEquals * vzdy je prvni expected (to co tam ma byt) * a druhy je actual (to co mi testovana metoda spocitala) * * 6. Nevytvaret testy pro entity - jednoduche tridy se netestuji. * Pokud je v entite nejaka funkcionalita, kterou by bylo potreba * testovat - chyba v navrhu. * * @author Petr Adamek (xadamek2@fi.muni.cz) * @author Eva Kucirkova (eva.k@mail.muni.cz) */ public class ExampleTest { private static Person newPerson(String name, String surname) { //entita ma jen bezparametricky konstruktor Person p = new Person(); p.setName(name); p.setSurname(surname); return p; } private static Date newDate(String date) { DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+1")); try { return simpleDateFormat.parse(date); } catch (ParseException ex) { throw new IllegalArgumentException("Wrong date format", ex); } } private static Date newDate1(int year, int month, int day) { Calendar calendar = new GregorianCalendar(); calendar.setTimeZone(TimeZone.getTimeZone("GMT+1")); //mesice se cisluji od nuly //dny jsou od jednicky calendar.set(year, month, day); Date date = calendar.getTime(); return date; } @Test public void test() { //vytvareni instance Person Person pepa = newPerson("Pepa", "Z depa"); //vytvareni seznamu instanci Person List expectedPeople = Arrays.asList( newPerson("Jan", "Novak"), newPerson("Petr", "Adamek")); List actualPeople = null; // manager.getAllPeople(); assertEquals(expectedPeople, actualPeople); //priklad vytvoreni data Date date2 = newDate("2009-05-01"); //druhy priklad vytvoreni data Date date3 = newDate1(2009, 4, 1); } }