@Test public void testAssignmentManagerTruncatedList() throws IOException { AssignmentManager am = Mockito.mock(AssignmentManager.class); RegionStates rs = Mockito.mock(RegionStates.class); // Add 100 regions as in-transition NavigableMap<String, RegionState> regionsInTransition = Maps.newTreeMap(); for (byte i = 0; i < 100; i++) { HRegionInfo hri = new HRegionInfo(FAKE_TABLE.getTableName(), new byte[]{i}, new byte[]{(byte) (i+1)}); regionsInTransition.put(hri.getEncodedName(), new RegionState(hri, RegionState.State.CLOSING, 12345L, FAKE_HOST)); } // Add hbase:meta in transition as well regionsInTransition.put( HRegionInfo.FIRST_META_REGIONINFO.getEncodedName(), new RegionState(HRegionInfo.FIRST_META_REGIONINFO, RegionState.State.CLOSING, 12345L, FAKE_HOST)); Mockito.doReturn(rs).when(am).getRegionStates(); Mockito.doReturn(regionsInTransition).when(rs).getRegionsInTransition(); // Render to a string StringWriter sw = new StringWriter(); new AssignmentManagerStatusTmpl() .setLimit(50) .render(sw, am); String result = sw.toString(); // Should always include META assertTrue(result.contains(HRegionInfo.FIRST_META_REGIONINFO.getEncodedName())); // Make sure we only see 50 of them Matcher matcher = Pattern.compile("CLOSING").matcher(result); int count = 0; while (matcher.find()) { count++; } assertEquals(50, count); }
@Test public void testAssignmentManagerTruncatedList() throws IOException { AssignmentManager am = Mockito.mock(AssignmentManager.class); // Add 100 regions as in-transition NavigableMap<String, RegionState> regionsInTransition = Maps.newTreeMap(); for (byte i = 0; i < 100; i++) { HRegionInfo hri = new HRegionInfo(FAKE_TABLE.getName(), new byte[]{i}, new byte[]{(byte) (i+1)}); regionsInTransition.put(hri.getEncodedName(), new RegionState(hri, RegionState.State.CLOSING, 12345L, FAKE_HOST)); } // Add META in transition as well regionsInTransition.put( HRegionInfo.FIRST_META_REGIONINFO.getEncodedName(), new RegionState(HRegionInfo.FIRST_META_REGIONINFO, RegionState.State.CLOSING, 12345L, FAKE_HOST)); Mockito.doReturn(regionsInTransition).when(am).getRegionsInTransition(); // Render to a string StringWriter sw = new StringWriter(); new AssignmentManagerStatusTmpl() .setLimit(50) .render(sw, am); String result = sw.toString(); // Should always include META assertTrue(result.contains(HRegionInfo.FIRST_META_REGIONINFO.getEncodedName())); // Make sure we only see 50 of them Matcher matcher = Pattern.compile("CLOSING").matcher(result); int count = 0; while (matcher.find()) { count++; } assertEquals(50, count); }
@Test public void testAssignmentManagerTruncatedList() throws IOException { AssignmentManager am = Mockito.mock(AssignmentManager.class); RegionStates rs = Mockito.mock(RegionStates.class); // Add 100 regions as in-transition NavigableMap<String, RegionState> regionsInTransition = Maps.newTreeMap(); for (byte i = 0; i < 100; i++) { HRegionInfo hri = new HRegionInfo(FAKE_TABLE.getName(), new byte[]{i}, new byte[]{(byte) (i+1)}); regionsInTransition.put(hri.getEncodedName(), new RegionState(hri, RegionState.State.CLOSING, 12345L, FAKE_HOST)); } // Add META in transition as well regionsInTransition.put( HRegionInfo.FIRST_META_REGIONINFO.getEncodedName(), new RegionState(HRegionInfo.FIRST_META_REGIONINFO, RegionState.State.CLOSING, 12345L, FAKE_HOST)); Mockito.doReturn(rs).when(am).getRegionStates(); Mockito.doReturn(regionsInTransition).when(rs).getRegionsInTransition(); // Render to a string StringWriter sw = new StringWriter(); new AssignmentManagerStatusTmpl() .setLimit(50) .render(sw, am); String result = sw.toString(); // Should always include META assertTrue(result.contains(HRegionInfo.FIRST_META_REGIONINFO.getEncodedName())); // Make sure we only see 50 of them Matcher matcher = Pattern.compile("CLOSING").matcher(result); int count = 0; while (matcher.find()) { count++; } assertEquals(50, count); }