package de.dhbw.humbuch.model.entity; import static org.junit.Assert.assertEquals; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; import org.junit.Test; public class GradeTest { @Test public void testGetAllRentedBooksOfGrade(){ Map<Grade, Map<TeachingMaterial, Integer>> gradeMap = prepareGradeTest(); for(Grade grade : gradeMap.keySet()){ Map<TeachingMaterial, Integer> teachingMaterialMap = gradeMap.get(grade); Iterator<TeachingMaterial> iterator = teachingMaterialMap.keySet().iterator(); TeachingMaterial teachingMaterial; if(iterator.hasNext()){ teachingMaterial = iterator.next(); assertEquals(4, (int) teachingMaterialMap.get(teachingMaterial)); assertEquals("Bio1 - Bugs", teachingMaterial.getName()); } if(iterator.hasNext()){ teachingMaterial = iterator.next(); assertEquals(2, (int) teachingMaterialMap.get(teachingMaterial)); assertEquals("German1 - Faust", teachingMaterial.getName()); } if(iterator.hasNext()){ teachingMaterial = iterator.next(); assertEquals(3, (int) teachingMaterialMap.get(teachingMaterial)); assertEquals("Java rocks", teachingMaterial.getName()); } if(iterator.hasNext()){ teachingMaterial = iterator.next(); assertEquals(7, (int) teachingMaterialMap.get(teachingMaterial)); assertEquals("Geometrie for Dummies", teachingMaterial.getName()); } } } public static Map<Grade, Map<TeachingMaterial, Integer>> prepareGradeTest(){ Map<Grade, Map<TeachingMaterial, Integer>> gradeMap = new LinkedHashMap<>(); Map<TeachingMaterial, Integer> teachingMaterialMap = new LinkedHashMap<>(); Grade grade = new Grade.Builder("7b").teacher("Herr Bob").build(); Category category = new Category.Builder("Book").build(); Date date = null; try { date = new SimpleDateFormat("dd.mm.yyyy", Locale.GERMAN).parse("12.04.1970"); } catch (ParseException e) { System.err.println("Could not format date " + e.getStackTrace()); } TeachingMaterial teachingMaterial = new TeachingMaterial.Builder(category, "Bio1 - Bugs", "1-2-3", date).price(79.75).toGrade(6).build(); teachingMaterial.setId(1); teachingMaterialMap.put(teachingMaterial, 4); teachingMaterial = new TeachingMaterial.Builder(category, "German1 - Faust", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(2); teachingMaterialMap.put(teachingMaterial, 2); teachingMaterial = new TeachingMaterial.Builder(category, "Java rocks", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(3); teachingMaterialMap.put(teachingMaterial, 3); teachingMaterial = new TeachingMaterial.Builder(category, "Geometrie for Dummies", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(4); teachingMaterialMap.put(teachingMaterial, 7); gradeMap.put(grade, teachingMaterialMap); return gradeMap; } public static Map<Grade, Map<TeachingMaterial, Integer>> prepareMultipleGradeTest(){ Map<Grade, Map<TeachingMaterial, Integer>> gradeMap = new LinkedHashMap<>(); Map<TeachingMaterial, Integer> teachingMaterialMap = new LinkedHashMap<>(); Grade grade = new Grade.Builder("7b").teacher("Herr Bob").build(); grade.setId(1); Category category = new Category.Builder("Book").build(); Date date = null; try { date = new SimpleDateFormat("dd.mm.yyyy", Locale.GERMAN).parse("12.04.1970"); } catch (ParseException e) { System.err.println("Could not format date " + e.getStackTrace()); } TeachingMaterial teachingMaterial = new TeachingMaterial.Builder(category, "Bio1 - Bugs", "1-2-3", date).price(79.75).toGrade(6).build(); teachingMaterial.setId(1); teachingMaterialMap.put(teachingMaterial, 4); teachingMaterial = new TeachingMaterial.Builder(category, "German1 - Faust", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(2); teachingMaterialMap.put(teachingMaterial, 2); teachingMaterial = new TeachingMaterial.Builder(category, "Java rocks", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(3); teachingMaterialMap.put(teachingMaterial, 3); teachingMaterial = new TeachingMaterial.Builder(category, "Geometrie for Dummies", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(4); teachingMaterialMap.put(teachingMaterial, 7); gradeMap.put(grade, teachingMaterialMap); grade = new Grade.Builder("11a").teacher("Frau Berta").build(); grade.setId(2); category = new Category.Builder("Book").build(); date = null; try { date = new SimpleDateFormat("dd.mm.yyyy", Locale.GERMAN).parse("12.04.1970"); } catch (ParseException e) { System.err.println("Could not format date " + e.getStackTrace()); } teachingMaterial = new TeachingMaterial.Builder(category, "Bio1 - Bugs", "1-2-3", date).price(79.75).toGrade(6).build(); teachingMaterial.setId(1); teachingMaterialMap.put(teachingMaterial, 4); teachingMaterial = new TeachingMaterial.Builder(category, "German1 - Faust", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(2); teachingMaterialMap.put(teachingMaterial, 2); teachingMaterial = new TeachingMaterial.Builder(category, "Java rocks", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(3); teachingMaterialMap.put(teachingMaterial, 3); teachingMaterial = new TeachingMaterial.Builder(category, "Geometrie for Dummies", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(4); teachingMaterialMap.put(teachingMaterial, 7); gradeMap.put(grade, teachingMaterialMap); grade = new Grade.Builder("5c").teacher("Herr Kaizen").build(); grade.setId(3); category = new Category.Builder("Book").build(); date = null; try { date = new SimpleDateFormat("dd.mm.yyyy", Locale.GERMAN).parse("12.04.1970"); } catch (ParseException e) { System.err.println("Could not format date " + e.getStackTrace()); } teachingMaterial = new TeachingMaterial.Builder(category, "Bio1 - Bugs", "1-2-3", date).price(79.75).toGrade(6).build(); teachingMaterial.setId(1); teachingMaterialMap.put(teachingMaterial, 4); teachingMaterial = new TeachingMaterial.Builder(category, "German1 - Faust", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(2); teachingMaterialMap.put(teachingMaterial, 2); teachingMaterial = new TeachingMaterial.Builder(category, "Java rocks", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(3); teachingMaterialMap.put(teachingMaterial, 3); teachingMaterial = new TeachingMaterial.Builder(category, "Geometrie for Dummies", "1-2-3", date).price(22.49).toGrade(11).build(); teachingMaterial.setId(4); teachingMaterialMap.put(teachingMaterial, 7); gradeMap.put(grade, teachingMaterialMap); return gradeMap; } }