@Test public void shouldFindStatsInDefaultStorage(){ //given Date from = parse("2016-10-01 00:00:00"); Date to = parse("2016-10-01 23:58:00"); //when storage.find(from, to, "instance", "type"); //then verify(defaultStorage).find(eq(from), eq(to), eq("instance"), eq("type")); verifyNoMoreInteractions(dailyStorage); verifyNoMoreInteractions(weeklyStorage); verifyNoMoreInteractions(monthlyStorage); }
@Test public void shouldFindStatsInMonthlyStorage(){ //given Date from = parse("2016-10-01 00:00:00"); Date to = parse("2016-11-18 01:00:00"); //when storage.find(from, to, "instance", "type"); //then verifyNoMoreInteractions(defaultStorage); verifyNoMoreInteractions(dailyStorage); verifyNoMoreInteractions(weeklyStorage); verify(monthlyStorage).find(eq(from), eq(to), isNull(String.class), eq("type")); }
@Test public void shouldFindStatsInDailyStorage(){ //given Date from = parse("2016-10-01 00:00:00"); Date to = parse("2016-10-02 01:00:00"); //when storage.find(from, to, "instance", "type"); //then verifyNoMoreInteractions(defaultStorage); verify(dailyStorage).find(eq(from), eq(to), isNull(String.class), eq("type")); verifyNoMoreInteractions(weeklyStorage); verifyNoMoreInteractions(monthlyStorage); }
@Test public void shouldFindStatsInWeeklyStorage(){ //given Date from = parse("2016-10-01 00:00:00"); Date to = parse("2016-10-08 01:00:00"); //when storage.find(from, to, "instance", "type"); //then verifyNoMoreInteractions(defaultStorage); verifyNoMoreInteractions(dailyStorage); verify(weeklyStorage).find(eq(from), eq(to), isNull(String.class), eq("type")); verifyNoMoreInteractions(monthlyStorage); }
@Test public void shouldCreateNewAggregateForDailyStats(){ //given Stats stats = new Stats(); stats.setStartDate(parse("2000-03-03 13:15:12")); stats.setEndDate(parse("2000-03-03 13:25:07")); stats.getMap().put("x", Stat.emptyStat()); given(dailyStorage.find( eq(parse("2000-03-03 00:00:01")), eq(parse("2000-03-03 23:59:58")), isNull(String.class), eq("type") )).willReturn( emptyList() ); //when storage.save(stats, "instance", "type"); //then verify(dailyStorage).find(eq(parse("2000-03-03 00:00:01")), eq(parse("2000-03-03 23:59:58")), isNull(String.class), eq("type")); verify(dailyStorage).replace(isNull(String.class), statsCaptor.capture(), isNull(String.class), eq("type")); assertEquals(parse("2000-03-03 00:00:00"), statsCaptor.getValue().getStartDate()); assertEquals(parse("2000-03-03 23:59:59"), statsCaptor.getValue().getEndDate()); }
@Test public void shouldCreateNewAggregateForWeeklyStats(){ //given Stats stats = new Stats(); stats.setStartDate(parse("2016-10-12 13:15:12")); stats.setEndDate(parse("2016-10-12 13:25:07")); stats.getMap().put("x", Stat.emptyStat()); given(weeklyStorage.find( eq(parse("2016-10-09 23:59:59")), eq(parse("2016-10-17 00:00:00")), isNull(String.class), eq("type") )).willReturn( emptyList() ); //when storage.save(stats, "instance", "type"); //then verify(weeklyStorage).find(eq(parse("2016-10-10 00:00:01")), eq(parse("2016-10-16 23:59:58")), isNull(String.class), eq("type")); verify(weeklyStorage).replace(isNull(String.class), statsCaptor.capture(), isNull(String.class), eq("type")); assertEquals(parse("2016-10-10 00:00:00"), statsCaptor.getValue().getStartDate()); assertEquals(parse("2016-10-16 23:59:59"), statsCaptor.getValue().getEndDate()); }
@Test public void shouldCreateNewAggregateForMonthlyStats(){ //given Stats stats = new Stats(); stats.setStartDate(parse("2016-10-12 13:15:12")); stats.setEndDate(parse("2016-10-12 13:25:07")); stats.getMap().put("x", Stat.emptyStat()); given(monthlyStorage.find( eq(parse("2016-10-01 00:00:01")), eq(parse("2016-10-31 23:59:58")), isNull(String.class), eq("type") )).willReturn( emptyList() ); //when storage.save(stats, "instance", "type"); //then verify(monthlyStorage).find(eq(parse("2016-10-01 00:00:01")), eq(parse("2016-10-31 23:59:58")), isNull(String.class), eq("type")); verify(monthlyStorage).replace(isNull(String.class), statsCaptor.capture(), isNull(String.class), eq("type")); assertEquals(parse("2016-10-01 00:00:00"), statsCaptor.getValue().getStartDate()); assertEquals(parse("2016-10-31 23:59:59"), statsCaptor.getValue().getEndDate()); }
stats.getMap().put("x", Stat.emptyStat()); given(monthlyStorage.find( eq(parse("2016-10-01 00:00:01")), eq(parse("2016-10-31 23:59:58")), verify(monthlyStorage).find(eq(parse("2016-10-01 00:00:01")), eq(parse("2016-10-31 23:59:58")), isNull(String.class), eq("type")); verify(monthlyStorage).replace(eq("daily-stat-id"), statsCaptor.capture(), isNull(String.class), eq("type"));
stats.getMap().put("x", Stat.emptyStat()); given(dailyStorage.find( eq(parse("2000-03-03 00:00:01")), eq(parse("2000-03-03 23:59:58")), verify(dailyStorage).find(eq(parse("2000-03-03 00:00:01")), eq(parse("2000-03-03 23:59:58")), isNull(String.class), eq("type")); verify(dailyStorage).replace(eq("daily-stat-id"), statsCaptor.capture(), isNull(String.class), eq("type"));
stats.getMap().put("x", Stat.emptyStat()); given(weeklyStorage.find( eq(parse("2016-10-17 00:00:01")), eq(parse("2016-10-23 23:59:58")), verify(weeklyStorage).find(eq(parse("2016-10-17 00:00:01")), eq(parse("2016-10-23 23:59:58")), isNull(String.class), eq("type")); verify(weeklyStorage).replace(eq("daily-stat-id"), statsCaptor.capture(), isNull(String.class), eq("type"));
@Test public void should_find_all_stats_in_bigger_range() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), null, null); String id2 = storage.save(stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:30:00")), null, null); String id3 = storage.save(stats(dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:45:00")), null, null); List<String> ids = storage.find(dt(year+"-01-01 08:10:00"), dt(year+"-01-01 08:40:00"), null, null); assertEquals(3, ids.size() ); assertTrue(ids.containsAll(asList(id1, id2, id3))); }
@Test public void should_find_two_stats_in_bigger_range() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), null, null); String id2 = storage.save(stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:30:00")), null, null); String id3 = storage.save(stats(dt(year+"-01-01 08:30:01"), dt(year+"-01-01 08:45:00")), null, null); List<String> ids = storage.find(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:30:00"), null, null); assertEquals(2, ids.size() ); assertEquals(id1, ids.get(0) ); assertEquals(id2, ids.get(1) ); }
@Test public void should_find_one_stats_in_exact_range() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:14:59")), null, null); String id2 = storage.save(stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:30:00")), null, null); String id3 = storage.save(stats(dt(year+"-01-01 08:30:01"), dt(year+"-01-01 08:45:00")), null, null); List<String> ids = storage.find(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:30:00"), null, null); assertEquals(1, ids.size() ); assertEquals(id2, ids.get(0) ); }
@Test public void should_find_one_stats_matching_instance() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", null); String id2 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i2", null); String id3 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i3", null); List<String> ids = storage.find(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:40:00"), "i2", null); assertEquals(1, ids.size() ); assertEquals(id2, ids.get(0) ); }
@Test public void should_find_one_stats_matching_type() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), null, "t1"); String id2 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), null, "t2"); String id3 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), null, "t3"); List<String> ids = storage.find(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:40:00"), null, "t2"); assertEquals(1, ids.size() ); assertEquals(id2, ids.get(0) ); }
@Test public void should_find_one_stats_matching_instance_and_type() throws IOException{ String id1 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t1"); String id2 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i2", "t1"); String id3 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t2"); String id4 = storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i2", "t2"); List<String> ids = storage.find(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:40:00"), "i2", "t1"); assertEquals(1, ids.size() ); assertEquals(id2, ids.get(0) ); }