Last active
December 15, 2015 15:38
-
-
Save gustavoanatoly/5282781 to your computer and use it in GitHub Desktop.
To guaranty ZK is mocked, I put this test in another class but throws: 2013-04-02 13:31:56,265 DEBUG [main] zookeeper.ZKUtil(119): master:62071 opening connection to ZooKeeper with ensemble (localhost:21818)
2013-04-02 13:31:56,305 INFO [main] zookeeper.RecoverableZooKeeper(119): The identifier of this process is master:62071
2013-04-02 13:32:01…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Test | |
public void testAssignmentManagerDoesntUseDrainingServer() throws KeeperException, IOException, InterruptedException { | |
Server server = Mockito.mock(Server.class); | |
ServerManager serverManager = Mockito.mock(ServerManager.class); | |
CatalogTracker catalogTracker = Mockito.mock(CatalogTracker.class); | |
LoadBalancer balancer = Mockito.mock(LoadBalancer.class); | |
ExecutorService service = Mockito.mock(ExecutorService.class); | |
TableLockManager tableLockManager = Mockito.mock(TableLockManager.class); | |
RecoverableZooKeeper recoverableZooKeeper = Mockito.mock(RecoverableZooKeeper.class); | |
ZooKeeperWatcher zkw = Mockito.mock(ZooKeeperWatcher.class); | |
ZooKeeper zk = Mockito.mock(ZooKeeper.class); | |
// HMaster hmaster = Mockito.mock(HMaster.class); | |
List<String> children = new ArrayList<String>(); | |
HRegionInfo hriA = | |
new HRegionInfo(Bytes.toBytes("table_a"), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); | |
HRegionInfo hriB = | |
new HRegionInfo(Bytes.toBytes("table_b"), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); | |
// Necessary to start Assignment Manager instance. | |
// Mockito.when(hmaster.getZooKeeper()).thenReturn(zkw); | |
// Mockito.when(hmaster.getZooKeeperWatcher()).thenReturn(zkw); | |
// Mockito.when(hmaster.getConfiguration()).thenReturn(TEST_UTIL.getConfiguration()); | |
Mockito.when(server.getConfiguration()).thenReturn(TEST_UTIL.getConfiguration()); | |
Mockito.when(zkw.getRecoverableZooKeeper()).thenReturn(recoverableZooKeeper); | |
Mockito.when(zkw.getRecoverableZooKeeper().getChildren(null, null)).thenReturn(children); | |
Mockito.when(zkw.getRecoverableZooKeeper().create(Mockito.anyString(), Mockito.any(byte[].class), Mockito.anyListOf(ACL.class), | |
Mockito.any(CreateMode.class))).thenReturn(""); | |
Mockito.when(zk.create(Mockito.anyString(), Mockito.any(byte[].class), Mockito.anyListOf(ACL.class), | |
Mockito.any(CreateMode.class))).thenReturn(""); | |
// Servers used by am | |
List<ServerName> destServers = new ArrayList<ServerName>(); | |
Map<ServerName, ServerLoad> onlineServers = new HashMap<ServerName, ServerLoad>(); | |
ServerName SRV_A = new ServerName("mockedserver.com", 3344, 1233); | |
ServerName SRV_B = new ServerName("mockedserver.com", 4433, 3312); | |
destServers.add(SRV_A); | |
destServers.add(SRV_B); | |
onlineServers.put(SRV_A, ServerLoad.EMPTY_SERVERLOAD); | |
onlineServers.put(SRV_B, ServerLoad.EMPTY_SERVERLOAD); | |
Mockito.when(serverManager.isServerOnline(SRV_A)).thenReturn(true); | |
Mockito.when(serverManager.isServerOnline(SRV_B)).thenReturn(true); | |
Mockito.when(serverManager.createDestinationServersList()).thenReturn(destServers); | |
Mockito.when(serverManager.createDestinationServersList(null)).thenReturn(destServers); | |
Mockito.when(serverManager.getOnlineServersList()).thenReturn(destServers); | |
Mockito.when(serverManager.getOnlineServers()).thenReturn(onlineServers); | |
HMaster hmaster = new HMaster(TEST_UTIL.getConfiguration()); | |
AssignmentManager am = new AssignmentManager(hmaster, | |
serverManager, catalogTracker, balancer, service, null, tableLockManager); | |
assertNotNull(am); | |
// Put SRV_B on drained list and try assign region | |
boolean isAddedToDrainedServerList = true; | |
destServers.remove(SRV_B); | |
onlineServers.remove(SRV_B); | |
Mockito.when(serverManager.addServerToDrainList(SRV_B)).thenReturn(isAddedToDrainedServerList); | |
Mockito.when(serverManager.createDestinationServersList()).thenReturn(destServers); | |
Mockito.when(serverManager.createDestinationServersList(null)).thenReturn(destServers); | |
Mockito.when(serverManager.getOnlineServersList()).thenReturn(destServers); | |
Mockito.when(serverManager.getOnlineServers()).thenReturn(onlineServers); | |
Mockito.when(serverManager.sendRegionOpen(SRV_A, hriA, -1)).thenReturn(RegionOpeningState.OPENED); | |
hmaster.assignRegion(hriA); | |
// RegionPlan plan = new RegionPlan(hriA, null, SRV_A); | |
// am.addPlan(hriA.getEncodedName(), plan); | |
// am.assign(hriA, false); | |
// System.out.println("===> RIT: " + hriA + " " + am.getRegionStates().isRegionInTransition(hriA)); | |
RegionPlan hriBPlan = new RegionPlan(hriB, null, SRV_B); | |
am.addPlan(hriB.getEncodedName(), hriBPlan); | |
am.assign(hriB, false); | |
assertTrue(am.getRegionStates().isRegionAssigned(hriA)); | |
assertFalse(am.getRegionStates().isRegionAssigned(hriB)); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment