1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.http;
19
20 import org.apache.hadoop.hbase.testclassification.SmallTests;
21 import org.junit.Test;
22 import org.junit.experimental.categories.Category;
23
24 @Category(SmallTests.class)
25 public class TestHttpServerLifecycle extends HttpServerFunctionalTest {
26
27
28
29
30
31
32 private void assertAlive(HttpServer server) {
33 assertTrue("Server is not alive", server.isAlive());
34 assertToStringContains(server, HttpServer.STATE_DESCRIPTION_ALIVE);
35 }
36
37 private void assertNotLive(HttpServer server) {
38 assertTrue("Server should not be live", !server.isAlive());
39 assertToStringContains(server, HttpServer.STATE_DESCRIPTION_NOT_LIVE);
40 }
41
42
43
44
45
46
47 @Test public void testCreatedServerIsNotAlive() throws Throwable {
48 HttpServer server = createTestServer();
49 assertNotLive(server);
50 }
51
52 @Test public void testStopUnstartedServer() throws Throwable {
53 HttpServer server = createTestServer();
54 stop(server);
55 }
56
57
58
59
60
61
62 @Test
63 public void testStartedServerIsAlive() throws Throwable {
64 HttpServer server = null;
65 server = createTestServer();
66 assertNotLive(server);
67 server.start();
68 assertAlive(server);
69 stop(server);
70 }
71
72
73
74
75
76
77 private void assertToStringContains(HttpServer server, String text) {
78 String description = server.toString();
79 assertTrue("Did not find \"" + text + "\" in \"" + description + "\"",
80 description.contains(text));
81 }
82
83
84
85
86
87
88 @Test public void testStoppedServerIsNotAlive() throws Throwable {
89 HttpServer server = createAndStartTestServer();
90 assertAlive(server);
91 stop(server);
92 assertNotLive(server);
93 }
94
95
96
97
98
99
100 @Test public void testStoppingTwiceServerIsAllowed() throws Throwable {
101 HttpServer server = createAndStartTestServer();
102 assertAlive(server);
103 stop(server);
104 assertNotLive(server);
105 stop(server);
106 assertNotLive(server);
107 }
108
109
110
111
112
113
114
115 @Test
116 public void testWepAppContextAfterServerStop() throws Throwable {
117 HttpServer server = null;
118 String key = "test.attribute.key";
119 String value = "test.attribute.value";
120 server = createTestServer();
121 assertNotLive(server);
122 server.start();
123 server.setAttribute(key, value);
124 assertAlive(server);
125 assertEquals(value, server.getAttribute(key));
126 stop(server);
127 assertNull("Server context should have cleared", server.getAttribute(key));
128 }
129 }