1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.util;
20
21 import org.apache.hadoop.hbase.testclassification.MediumTests;
22 import org.junit.Test;
23 import org.junit.experimental.categories.Category;
24
25 import static org.mockito.Mockito.mock;
26 import static org.mockito.Mockito.when;
27 import static org.mockito.Mockito.verify;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertFalse;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.assertTrue;
33
34 @Category(MediumTests.class)
35 public class TestEnvironmentEdgeManager {
36
37 @Test
38 public void testManageSingleton() {
39 EnvironmentEdgeManager.reset();
40 EnvironmentEdge edge = EnvironmentEdgeManager.getDelegate();
41 assertNotNull(edge);
42 assertTrue(edge instanceof DefaultEnvironmentEdge);
43 EnvironmentEdgeManager.reset();
44 EnvironmentEdge edge2 = EnvironmentEdgeManager.getDelegate();
45 assertFalse(edge == edge2);
46 IncrementingEnvironmentEdge newEdge = new IncrementingEnvironmentEdge();
47 EnvironmentEdgeManager.injectEdge(newEdge);
48 assertEquals(newEdge, EnvironmentEdgeManager.getDelegate());
49
50
51 EnvironmentEdgeManager.injectEdge(null);
52 EnvironmentEdge nullResult = EnvironmentEdgeManager.getDelegate();
53 assertTrue(nullResult instanceof DefaultEnvironmentEdge);
54 }
55
56 @Test
57 public void testCurrentTimeInMillis() {
58 EnvironmentEdge mock = mock(EnvironmentEdge.class);
59 EnvironmentEdgeManager.injectEdge(mock);
60 long expectation = 3456;
61 when(mock.currentTime()).thenReturn(expectation);
62 long result = EnvironmentEdgeManager.currentTime();
63 verify(mock).currentTime();
64 assertEquals(expectation, result);
65 }
66 }