1 package com.google.code.jetm.reporting.xml;
2
3 import static org.fest.assertions.Assertions.assertThat;
4 import static org.mockito.Mockito.mock;
5 import static org.mockito.Mockito.when;
6
7 import java.io.StringReader;
8 import java.io.StringWriter;
9 import java.util.Collection;
10 import java.util.Collections;
11
12 import org.junit.Test;
13
14 import etm.core.aggregation.Aggregate;
15
16
17
18
19
20
21
22
23 public class XmlAggregateBinderTest {
24 private final XmlAggregateBinder binder = new XmlAggregateBinder();
25
26
27
28
29
30
31
32 @Test
33 public void testTransform() throws Exception {
34 final double min = 1.0;
35 final double max = 2.0;
36 final double total = 4.0;
37 final long measurements = 1500;
38 final String name = "measurement-name";
39
40 final XmlAggregate aggregate = mock(XmlAggregate.class);
41 when(aggregate.getMax()).thenReturn(max);
42 when(aggregate.getMin()).thenReturn(min);
43 when(aggregate.getTotal()).thenReturn(total);
44 when(aggregate.getMeasurements()).thenReturn(measurements);
45 when(aggregate.getName()).thenReturn(name);
46
47 final StringWriter writer = new StringWriter();
48 binder.bind(Collections.singletonList(aggregate), writer);
49
50
51 final StringReader reader = new StringReader(writer.toString());
52 final Collection<Aggregate> unmarshalledList = binder.unbind(reader);
53 assertThat(unmarshalledList).hasSize(1);
54 final Aggregate unmarshalled = unmarshalledList.iterator().next();
55 assertThat(unmarshalled.getMax()).isEqualTo(max);
56 assertThat(unmarshalled.getMin()).isEqualTo(min);
57 assertThat(unmarshalled.getTotal()).isEqualTo(total);
58 assertThat(unmarshalled.getMeasurements()).isEqualTo(measurements);
59 assertThat(unmarshalled.getName()).isEqualTo(name);
60 }
61 }