1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.zookeeper;
20
21
22 import static org.junit.Assert.assertFalse;
23 import static org.junit.Assert.assertTrue;
24
25 import java.io.IOException;
26
27 import org.apache.commons.logging.Log;
28 import org.apache.commons.logging.LogFactory;
29 import org.apache.hadoop.hbase.*;
30 import org.apache.hadoop.hbase.testclassification.MediumTests;
31 import org.apache.zookeeper.KeeperException;
32 import org.junit.AfterClass;
33 import org.junit.BeforeClass;
34 import org.junit.Test;
35 import org.junit.experimental.categories.Category;
36
37 @Category(MediumTests.class)
38 public class TestZKTable {
39 private static final Log LOG = LogFactory.getLog(TestZooKeeperNodeTracker.class);
40 private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
41
42 @BeforeClass
43 public static void setUpBeforeClass() throws Exception {
44 TEST_UTIL.startMiniZKCluster();
45 }
46
47 @AfterClass
48 public static void tearDownAfterClass() throws Exception {
49 TEST_UTIL.shutdownMiniZKCluster();
50 }
51
52 @Test
53 public void testTableStates()
54 throws ZooKeeperConnectionException, IOException, KeeperException {
55 final TableName name =
56 TableName.valueOf("testDisabled");
57 Abortable abortable = new Abortable() {
58 @Override
59 public void abort(String why, Throwable e) {
60 LOG.info(why, e);
61 }
62
63 @Override
64 public boolean isAborted() {
65 return false;
66 }
67
68 };
69 ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
70 name.getNameAsString(), abortable, true);
71 ZKTable zkt = new ZKTable(zkw);
72 assertFalse(zkt.isEnabledTable(name));
73 assertFalse(zkt.isDisablingTable(name));
74 assertFalse(zkt.isDisabledTable(name));
75 assertFalse(zkt.isEnablingTable(name));
76 assertFalse(zkt.isDisablingOrDisabledTable(name));
77 assertFalse(zkt.isDisabledOrEnablingTable(name));
78 assertFalse(zkt.isTablePresent(name));
79 zkt.setDisablingTable(name);
80 assertTrue(zkt.isDisablingTable(name));
81 assertTrue(zkt.isDisablingOrDisabledTable(name));
82 assertFalse(zkt.getDisabledTables().contains(name));
83 assertTrue(zkt.isTablePresent(name));
84 zkt.setDisabledTable(name);
85 assertTrue(zkt.isDisabledTable(name));
86 assertTrue(zkt.isDisablingOrDisabledTable(name));
87 assertFalse(zkt.isDisablingTable(name));
88 assertTrue(zkt.getDisabledTables().contains(name));
89 assertTrue(zkt.isTablePresent(name));
90 zkt.setEnablingTable(name);
91 assertTrue(zkt.isEnablingTable(name));
92 assertTrue(zkt.isDisabledOrEnablingTable(name));
93 assertFalse(zkt.isDisabledTable(name));
94 assertFalse(zkt.getDisabledTables().contains(name));
95 assertTrue(zkt.isTablePresent(name));
96 zkt.setEnabledTable(name);
97 assertTrue(zkt.isEnabledTable(name));
98 assertFalse(zkt.isEnablingTable(name));
99 assertTrue(zkt.isTablePresent(name));
100 zkt.setDeletedTable(name);
101 assertFalse(zkt.isEnabledTable(name));
102 assertFalse(zkt.isDisablingTable(name));
103 assertFalse(zkt.isDisabledTable(name));
104 assertFalse(zkt.isEnablingTable(name));
105 assertFalse(zkt.isDisablingOrDisabledTable(name));
106 assertFalse(zkt.isDisabledOrEnablingTable(name));
107 assertFalse(zkt.isTablePresent(name));
108 }
109
110 }
111