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
20
21
22
23
24
25 @RunWith(PowerMockRunner.class)
26 @PrepareForTest(value = { PointFactory.class, EtmManager.class, NoOpEtmPoint.class })
27 public class PointFactoryTest {
28
29
30
31
32
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
50
51
52
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 }