package org.gaecounter; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.gaecounter.data.Counter; import org.gaecounter.data.Counter.Type; import org.junit.Test; public class CounterTest { @Test public void testMapping() { { List<Counter> lTestData = new ArrayList<Counter>(); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2010, 1, 1), "test.wav")); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2011, 2, 2), "test.wav")); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2011, 2, 2), "foo.wav")); Map<String, Map<String, Integer>> map = Counter.getPerFilePerDateMap(lTestData, false); assertEquals(2, map.keySet().size()); assertTrue(map.keySet().toString(), map.keySet().contains("test.wav")); assertTrue(map.keySet().toString(), map.keySet().contains("foo.wav")); Map<String, Integer> lData = map.get("test.wav"); assertEquals(2, lData.keySet().size()); assertTrue(lData.keySet().toString(), lData.keySet().contains("2010/01/01")); assertTrue(lData.keySet().toString(), lData.keySet().contains("2011/02/02")); } { List<Counter> lTestData = new ArrayList<Counter>(); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2010, 1, 1), "test_1.0.1.wav")); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2010, 1, 1), "test_1.0.2.wav")); lTestData.add(new Counter(Type.DAY, Type.DAY.getPartialStr(2011, 2, 2), "test_1.0.3.wav")); Map<String, Map<String, Integer>> map = Counter.getPerFilePerDateMap(lTestData, true); assertEquals(1, map.keySet().size()); assertTrue(map.keySet().toString(), map.keySet().contains("test*.wav")); Map<String, Integer> lData = map.get("test*.wav"); assertEquals(2, lData.keySet().size()); assertTrue(lData.keySet().toString(), lData.keySet().contains("2010/01/01")); assertEquals((Integer)2, lData.get("2010/01/01")); assertTrue(lData.keySet().toString(), lData.keySet().contains("2011/02/02")); assertEquals((Integer)1, lData.get("2011/02/02")); } } @Test public void testDateStrs() { Type t = Type.DAY; Set<String> lDateStrs = new HashSet<String>(); lDateStrs.add(t.getPartialStr(2010, 12, 18)); lDateStrs.add(t.getPartialStr(2010, 12, 16)); List<String> dateStrs = Counter.getDateStrs(Type.DAY, Type.DAY.getPartial(2010, 12, 20), lDateStrs); assertEquals(6, dateStrs.size()); assertEquals("2010/12/15", dateStrs.get(0)); assertEquals("2010/12/16", dateStrs.get(1)); assertEquals("2010/12/17", dateStrs.get(2)); assertEquals("2010/12/18", dateStrs.get(3)); assertEquals("2010/12/19", dateStrs.get(4)); assertEquals("2010/12/20", dateStrs.get(5)); } @Test public void testWeekConversion() { { // Prepare data Map<String,Map<String,Integer>> lData = new HashMap<String, Map<String,Integer>>(); Map<String,Integer> lDayData = new HashMap<String, Integer>(); lData.put("testfile", lDayData); lDayData.put("2011/12/09", 1); lDayData.put("2011/12/10", 1); lDayData.put("2011/12/11", 1); lDayData.put("2011/12/12", 1); // Monday lDayData.put("2011/12/13", 1); lDayData.put("2011/12/14", 1); lDayData.put("2011/12/15", 1); lDayData.put("2011/12/16", 1); lDayData.put("2011/12/17", 1); lDayData.put("2011/12/18", 1); lDayData.put("2011/12/19", 1); // Monday lDayData.put("2011/12/20", 1); // Test method Map<String, Map<String, Integer>> lResult = Counter.getFilePerWeekMap(lData); Map<String, Integer> lWeekData = lResult.get("testfile"); assertEquals(3,lWeekData.size()); assertEquals(3,(int)lWeekData.get("2011/12/05")); assertEquals(7,(int)lWeekData.get("2011/12/12")); assertEquals(2,(int)lWeekData.get("2011/12/19")); } { // Prepare data Map<String,Map<String,Integer>> lData = new HashMap<String, Map<String,Integer>>(); Map<String,Integer> lDayData = new HashMap<String, Integer>(); lData.put("testfile", lDayData); lDayData.put("2011/12/09", 1); lDayData.put("2011/12/10", 1); //lDayData.put("2011/12/12", 1); // Monday //lDayData.put("2011/12/19", 1); // Monday lDayData.put("2011/12/20", 1); // Test method Map<String, Map<String, Integer>> lResult = Counter.getFilePerWeekMap(lData); Map<String, Integer> lWeekData = lResult.get("testfile"); assertEquals(2,lWeekData.size()); assertEquals(2,(int)lWeekData.get("2011/12/05")); assertEquals(1,(int)lWeekData.get("2011/12/19")); } } }