@Test public void testSingleHeader() throws Exception { parse("/profile=default/subsystem=threads/thread-factory=mytf:do{ name = value }"); assertTrue(handler.hasAddress()); assertTrue(handler.hasOperationName()); assertFalse(handler.hasProperties()); assertFalse(handler.endsOnAddressOperationNameSeparator()); assertFalse(handler.endsOnPropertyListStart()); assertFalse(handler.endsOnPropertySeparator()); assertFalse(handler.endsOnPropertyValueSeparator()); assertFalse(handler.endsOnNodeSeparator()); assertFalse(handler.endsOnNodeTypeNameSeparator()); assertFalse(handler.endsOnSeparator()); assertFalse(handler.endsOnHeaderListStart()); assertTrue(handler.isRequestComplete()); assertTrue(handler.hasHeaders()); final Collection<ParsedOperationRequestHeader> headers = handler.getHeaders(); assertEquals(1, headers.size()); final ParsedOperationRequestHeader header = headers.iterator().next(); assertEquals("name", header.getName()); final ModelNode node = new ModelNode(); node.get("name").set("value"); final ModelNode headersNode = new ModelNode(); header.addTo(ctx, headersNode); assertEquals(node, headersNode); }
@Test public void testTwoConcurrentGroups() throws Exception { parse( "/profile=default/subsystem=threads/thread-factory=mytf:do{ rollout " + "groupA(rolling-to-servers=true,max-failure-percentage=20) ^ groupB"); assertTrue(handler.hasAddress()); assertTrue(handler.hasOperationName()); assertFalse(handler.hasProperties()); assertFalse(handler.endsOnAddressOperationNameSeparator()); assertFalse(handler.endsOnPropertyListStart()); assertFalse(handler.endsOnPropertySeparator()); assertFalse(handler.endsOnPropertyValueSeparator()); assertFalse(handler.endsOnNodeSeparator()); assertFalse(handler.endsOnNodeTypeNameSeparator()); assertFalse(handler.endsOnSeparator()); assertFalse(handler.endsOnHeaderListStart()); assertFalse(handler.isRequestComplete()); assertTrue(handler.hasHeaders()); final Collection<ParsedOperationRequestHeader> headers = handler.getHeaders(); assertEquals(1, headers.size()); final ParsedOperationRequestHeader header = headers.iterator().next(); assertTrue(header instanceof ParsedRolloutPlanHeader); final ModelNode node = new ModelNode(); final ModelNode inSeries = node.get(Util.ROLLOUT_PLAN).get(Util.IN_SERIES); final ModelNode concurrent = new ModelNode(); final ModelNode cg = concurrent.get(Util.CONCURRENT_GROUPS); ModelNode group = cg.get("groupA"); group.get("rolling-to-servers").set("true"); group.get("max-failure-percentage").set("20"); group = cg.get("groupB"); inSeries.add().set(concurrent); final ModelNode headersNode = new ModelNode(); header.addTo(ctx, headersNode); assertEquals(node, headersNode); }
@Test public void testNonConcurrentGroupNames() throws Exception { parse("/profile=default/subsystem=threads/thread-factory=mytf:do{ rollout groupA , groupB"); assertTrue(handler.hasAddress()); assertTrue(handler.hasOperationName()); assertFalse(handler.hasProperties()); assertFalse(handler.endsOnAddressOperationNameSeparator()); assertFalse(handler.endsOnPropertyListStart()); assertFalse(handler.endsOnPropertySeparator()); assertFalse(handler.endsOnPropertyValueSeparator()); assertFalse(handler.endsOnNodeSeparator()); assertFalse(handler.endsOnNodeTypeNameSeparator()); assertFalse(handler.endsOnSeparator()); assertFalse(handler.endsOnHeaderListStart()); assertFalse(handler.isRequestComplete()); assertTrue(handler.hasHeaders()); final Collection<ParsedOperationRequestHeader> headers = handler.getHeaders(); assertEquals(1, headers.size()); final ParsedOperationRequestHeader header = headers.iterator().next(); assertTrue(header instanceof ParsedRolloutPlanHeader); final ModelNode node = new ModelNode(); final ModelNode inSeries = node.get(Util.ROLLOUT_PLAN).get(Util.IN_SERIES); ModelNode group = new ModelNode(); group.get("groupA"); inSeries.add().get(Util.SERVER_GROUP).set(group); group = new ModelNode(); group.get("groupB"); inSeries.add().get(Util.SERVER_GROUP).set(group); final ModelNode headersNode = new ModelNode(); header.addTo(ctx, headersNode); assertEquals(node, headersNode); }