1 package com.google.code.jetm.reporting;
2
3 import static org.fest.assertions.Assertions.assertThat;
4
5 import java.io.StringReader;
6 import java.io.StringWriter;
7 import java.util.Collection;
8
9 import org.junit.Test;
10
11 import com.google.code.jetm.reporting.xml.XmlAggregateBinder;
12
13 import etm.core.aggregation.Aggregate;
14 import etm.core.configuration.BasicEtmConfigurator;
15 import etm.core.configuration.EtmManager;
16 import etm.core.monitor.EtmMonitor;
17 import etm.core.monitor.EtmPoint;
18
19
20
21
22
23
24
25
26 public class BindingMeasurementRendererITest {
27
28
29
30 @Test
31 public void testXmlBinding() {
32 final AggregateBinder binder = new XmlAggregateBinder();
33 final StringWriter writer = new StringWriter();
34 final BindingMeasurementRenderer renderer = new BindingMeasurementRenderer(binder, writer);
35
36 BasicEtmConfigurator.configure();
37 final EtmMonitor monitor = EtmManager.getEtmMonitor();
38 monitor.start();
39
40 final String pointAName = "monitor.a.point";
41 final EtmPoint pointA = monitor.createPoint(pointAName);
42 pointA.collect();
43
44 final String pointBName = "monitor.b.point";
45 final EtmPoint pointB = monitor.createPoint(pointBName);
46 pointB.collect();
47
48 monitor.stop();
49 monitor.render(renderer);
50
51 final StringReader reader = new StringReader(writer.toString());
52 final Collection<Aggregate> aggregates = binder.unbind(reader);
53 boolean hasA = false;
54 boolean hasB = false;
55 for(Aggregate aggregate : aggregates) {
56 hasA |= pointAName.equals(aggregate.getName());
57 hasB |= pointBName.equals(aggregate.getName());
58 }
59
60 assertThat(hasA).as("Point A not found in data: " + aggregates).isTrue();
61 assertThat(hasB).as("Point B not found in data: " + aggregates).isTrue();
62 }
63 }