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.zookeeper.KeeperException;
31 import org.junit.AfterClass;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
34 import org.junit.experimental.categories.Category;
35
36 @Category(MediumTests.class)
37 public class TestZKTable {
38 private static final Log LOG = LogFactory.getLog(TestZooKeeperNodeTracker.class);
39 private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
40
41 @BeforeClass
42 public static void setUpBeforeClass() throws Exception {
43 TEST_UTIL.startMiniZKCluster();
44 }
45
46 @AfterClass
47 public static void tearDownAfterClass() throws Exception {
48 TEST_UTIL.shutdownMiniZKCluster();
49 }
50
51 @Test
52 public void testTableStates()
53 throws ZooKeeperConnectionException, IOException, KeeperException {
54 final TableName name =
55 TableName.valueOf("testDisabled");
56 Abortable abortable = new Abortable() {
57 @Override
58 public void abort(String why, Throwable e) {
59 LOG.info(why, e);
60 }
61
62 @Override
63 public boolean isAborted() {
64 return false;
65 }
66
67 };
68 ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
69 name.getNameAsString(), abortable, true);
70 ZKTable zkt = new ZKTable(zkw);
71 assertFalse(zkt.isEnabledTable(name));
72 assertFalse(zkt.isDisablingTable(name));
73 assertFalse(zkt.isDisabledTable(name));
74 assertFalse(zkt.isEnablingTable(name));
75 assertFalse(zkt.isDisablingOrDisabledTable(name));
76 assertFalse(zkt.isDisabledOrEnablingTable(name));
77 assertFalse(zkt.isTablePresent(name));
78 zkt.setDisablingTable(name);
79 assertTrue(zkt.isDisablingTable(name));
80 assertTrue(zkt.isDisablingOrDisabledTable(name));
81 assertFalse(zkt.getDisabledTables().contains(name));
82 assertTrue(zkt.isTablePresent(name));
83 zkt.setDisabledTable(name);
84 assertTrue(zkt.isDisabledTable(name));
85 assertTrue(zkt.isDisablingOrDisabledTable(name));
86 assertFalse(zkt.isDisablingTable(name));
87 assertTrue(zkt.getDisabledTables().contains(name));
88 assertTrue(zkt.isTablePresent(name));
89 zkt.setEnablingTable(name);
90 assertTrue(zkt.isEnablingTable(name));
91 assertTrue(zkt.isDisabledOrEnablingTable(name));
92 assertFalse(zkt.isDisabledTable(name));
93 assertFalse(zkt.getDisabledTables().contains(name));
94 assertTrue(zkt.isTablePresent(name));
95 zkt.setEnabledTable(name);
96 assertTrue(zkt.isEnabledTable(name));
97 assertFalse(zkt.isEnablingTable(name));
98 assertTrue(zkt.isTablePresent(name));
99 zkt.setDeletedTable(name);
100 assertFalse(zkt.isEnabledTable(name));
101 assertFalse(zkt.isDisablingTable(name));
102 assertFalse(zkt.isDisabledTable(name));
103 assertFalse(zkt.isEnablingTable(name));
104 assertFalse(zkt.isDisablingOrDisabledTable(name));
105 assertFalse(zkt.isDisabledOrEnablingTable(name));
106 assertFalse(zkt.isTablePresent(name));
107 }
108
109 }
110