View Javadoc

1   package com.google.code.jetm.reporting.ext;
2   
3   import static org.fest.assertions.Assertions.assertThat;
4   import static org.powermock.api.mockito.PowerMockito.mock;
5   import static org.powermock.api.mockito.PowerMockito.mockStatic;
6   import static org.powermock.api.mockito.PowerMockito.when;
7   import static org.powermock.api.mockito.PowerMockito.whenNew;
8   
9   import org.junit.Test;
10  import org.junit.runner.RunWith;
11  import org.powermock.core.classloader.annotations.PrepareForTest;
12  import org.powermock.modules.junit4.PowerMockRunner;
13  
14  import etm.core.configuration.EtmManager;
15  import etm.core.monitor.EtmMonitor;
16  import etm.core.monitor.EtmPoint;
17  
18  /**
19   * Unit tests for {@link PointFactory}.
20   * 
21   * @author JH016266
22   * 
23   */
24  
25  @RunWith(PowerMockRunner.class)
26  @PrepareForTest(value = { PointFactory.class, EtmManager.class, NoOpEtmPoint.class })
27  public class PointFactoryTest {
28      /**
29       * Test the creation of a no-op ETM point.
30       * 
31       * @throws Exception
32       *             If any errors occur during the test run.
33       */
34      @Test
35      public void testCreateNoOp() throws Exception {
36          final EtmMonitor monitor = mock(EtmMonitor.class);
37          mockStatic(EtmManager.class);
38          when(EtmManager.getEtmMonitor()).thenReturn(monitor);
39  
40          final Class<?> callerClass = Object.class;
41          final String methodSig = "a.method.sig";
42          final NoOpEtmPoint point = mock(NoOpEtmPoint.class);
43          whenNew(NoOpEtmPoint.class).withArguments(callerClass.getCanonicalName() + ": " + methodSig).thenReturn(point);
44  
45          assertThat(PointFactory.getPoint(callerClass, methodSig)).isEqualTo(point);
46      }
47  
48      /**
49       * Test the creation of an ETM point from the EtmMonitor.
50       * 
51       * @throws Exception
52       *             If any errors occur during the test run.
53       */
54      @Test
55      public void testCreateRealPoint() throws Exception {
56          final EtmMonitor monitor = mock(EtmMonitor.class);
57          when(monitor.isStarted()).thenReturn(Boolean.TRUE);
58  
59          mockStatic(EtmManager.class);
60          when(EtmManager.getEtmMonitor()).thenReturn(monitor);
61  
62          final Class<?> callerClass = Object.class;
63          final String methodSig = "a.method.sig";
64          final EtmPoint point = mock(EtmPoint.class);
65          when(monitor.createPoint(callerClass.getCanonicalName() + ": " + methodSig)).thenReturn(point);
66  
67          assertThat(PointFactory.getPoint(callerClass, methodSig)).isEqualTo(point);
68      }
69  }