View Javadoc

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   * Unit tests for {@link XmlAggregateBinderTest}.
18   * 
19   * @author jrh3k5
20   * 
21   */
22  
23  public class XmlAggregateBinderTest {
24      private final XmlAggregateBinder binder = new XmlAggregateBinder();
25  
26      /**
27       * Test the marshalling of an aggregate to XML.
28       * 
29       * @throws Exception
30       *             If any errors occur during the test run.
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          // Reconstitute it as a bean
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  }