@Test public void should_load_top_level() throws IOException{ //given Stat parentStat = stat(100); Stat childStat = stat(10); parentStat.ensureChildrenMap(); parentStat.getChildren().put("child", childStat); Stats stats = stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:30:00"), parentStat); storage.save(stats, null, null); //when Stats topLevel = storage.loadAggregated(true, dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:45:00"), null, null); //then Stat root = topLevel.getMap().get(STAT_NAME); assertNotNull(root); assertNotNull( root.getChildren() ); //not null map means that root has children ... assertEquals( 0, root.getChildren().size());///but for top level only children are empty }
@Test public void should_load_aggregated_top_level() throws IOException{ //given Stat parentStat = stat(100); Stat childStat = stat(10); parentStat.ensureChildrenMap(); parentStat.getChildren().put("child", childStat); Stats stats1 = stats(dt(year+"-01-01 08:05:00"), dt(year+"-01-01 08:10:00"), parentStat); storage.save(stats1, null, null); Stats stats2 = stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:20:00"), parentStat); storage.save(stats2, null, null); //when Stats loaded = storage.loadAggregated(true, dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:30:00"), null, null); //then assertEquals( dt(year+"-01-01 08:05:00"), loaded.getStartDate()); assertEquals( dt(year+"-01-01 08:20:00"), loaded.getEndDate()); assertEquals( 1, loaded.getMap().size()); Stat loadedRoot = loaded.getMap().get(STAT_NAME); assertEquals( 100L, loadedRoot.getAvg()); assertEquals( 2, loadedRoot.getHits()); assertNotNull( loadedRoot.getChildren()); assertEquals( 0, loadedRoot.getChildren().size()); }
private Stats topLevelForRange(TimeRange range) { Stats result; if( canSearch(range) ){ result = getStorage().loadAggregated(true, range.getFromDate(), range.getToDate(), range.getInstance(), range.getType()); if( inMemoryInRange(range) ){ Stats current = topLevelInMemory(); result.merge(current, false); result.setInfo("Added in-memory data. Original info: " + result.getInfo()); } } else{ result = topLevelInMemory(); result.setInfo("in-memory data only. Original info: " + result.getInfo()); } return result; }
@Test public void should_load_aggregated() throws IOException{ //given Stat parentStat = stat(100); Stat childStat = stat(10); parentStat.ensureChildrenMap(); parentStat.getChildren().put("child", childStat); Stats stats1 = stats(dt(year+"-01-01 08:05:00"), dt(year+"-01-01 08:10:00"), parentStat); stats1.setLost(10); stats1.setFatalError("e1"); storage.save(stats1, null, null); Stats stats2 = stats(dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:20:00"), parentStat); stats2.setLost(100); stats2.setFatalError("e2"); storage.save(stats2, null, null); //when Stats loaded = storage.loadAggregated(false, dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:30:00"), null, null); //then assertEquals( dt(year+"-01-01 08:05:00"), loaded.getStartDate()); assertEquals( dt(year+"-01-01 08:20:00"), loaded.getEndDate()); assertEquals( 110, loaded.getLost()); assertTrue( loaded.getFatalError().startsWith("e")); assertEquals( 1, loaded.getMap().size()); Stat loadedChild = loaded.getMap().get(STAT_NAME).getChild("child"); assertEquals( 10L, loadedChild.getAvg()); assertEquals( 2, loadedChild.getHits()); }
@Test public void should_load_aggregated_by_type() throws IOException{ //given storage.save(stats( dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:10:00"), stat(10)), "i1", null); storage.save(stats( dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:20:00"), stat(100)), "i1", "t1"); storage.save(stats( dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:45:00"), stat(1000)), "i2", "t1"); //when Stats aggrT = storage.loadAggregated(false, dt(year+"-01-01 07:00:00"), dt(year+"-01-01 09:30:00"), null, "t1"); //then Stats aggregated = aggrT; Stat stat = aggregated.getMap().get(STAT_NAME); assertEquals( dt(year+"-01-01 08:15:00"), aggregated.getStartDate()); assertEquals( dt(year+"-01-01 08:45:00"), aggregated.getEndDate()); assertEquals( 1, aggregated.getMap().size()); assertEquals( 550L, stat.getAvg()); assertEquals( 2L, stat.getHits()); assertEquals( 1000L, stat.getMax()); assertEquals( 100L, stat.getMin()); }
@Test public void should_load_aggregated_by_instance() throws IOException{ //given storage.save(stats( dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:10:00"), stat(10)), "i1", null); storage.save(stats( dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:20:00"), stat(100)), "i1", "t1"); storage.save(stats( dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:45:00"), stat(1000)), "i2", "t1"); //when Stats aggrI = storage.loadAggregated(false, dt(year+"-01-01 07:00:00"), dt(year+"-01-01 09:30:00"), "i1", null); //then Stats aggregated = aggrI; Stat stat = aggregated.getMap().get(STAT_NAME); assertEquals( dt(year+"-01-01 08:00:00"), aggregated.getStartDate()); assertEquals( dt(year+"-01-01 08:20:00"), aggregated.getEndDate()); assertEquals( 1, aggregated.getMap().size()); assertEquals( 55L, stat.getAvg()); assertEquals( 2L, stat.getHits()); assertEquals( 100L, stat.getMax()); assertEquals( 10L, stat.getMin()); }
@Test public void should_load_aggregated_by_instance_and_type() throws IOException{ //given storage.save(stats( dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:10:00"), stat(10)), "i1", null); storage.save(stats( dt(year+"-01-01 08:15:00"), dt(year+"-01-01 08:20:00"), stat(100)), "i1", "t1"); storage.save(stats( dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:45:00"), stat(1000)), "i2", "t1"); //when Stats aggrIT = storage.loadAggregated(false, dt(year+"-01-01 07:00:00"), dt(year+"-01-01 09:30:00"), "i1", "t1"); //then Stats aggregated = aggrIT; Stat stat = aggregated.getMap().get(STAT_NAME); assertEquals( dt(year+"-01-01 08:15:00"), aggregated.getStartDate()); assertEquals( dt(year+"-01-01 08:20:00"), aggregated.getEndDate()); assertEquals( 1, aggregated.getMap().size()); assertEquals( 100L, stat.getAvg()); assertEquals( 1L, stat.getHits()); assertEquals( 100L, stat.getMax()); assertEquals( 100L, stat.getMin()); } }