@Test(expected = IncompleteClusterException.class) public void testNoIp() throws Exception { new Expression(new IPServiceEvaluator("svc2", IP_TYPE, null), null, null).evaluate(cluster, clusterNodes, node1); }
} else if (numParts == 2 && "service".equals(ipMacroParts[0])) { return new IPServiceEvaluator(ipMacroParts[1], DEFAULT_IP_TYPE, instanceNum); } else if (numParts == 2 && ipMacroParts[1].equals("self")) { return new IPServiceEvaluator(service, ipMacroParts[0], instanceNum);
@Test(expected = IncompleteClusterException.class) public void testOutOfBounds() throws Exception { new Expression(new IPServiceEvaluator("svc1", IP_TYPE, 3), null, null).evaluate(cluster, clusterNodes, node1); }
@Test public void testPlain() throws Exception { Assert.assertEquals( "9.6.8.1,9.7.8.4,9.1.3.4", new Expression(new IPServiceEvaluator("svc1", IP_TYPE, null), null, null) .evaluate(cluster, clusterNodes, node1)); }
@Test public void testNoService() throws Exception { Assert.assertNull(new Expression( new IPServiceEvaluator("svc4", IP_TYPE, null), null, null).evaluate(cluster, clusterNodes, node1)); }
@Test public void testServiceIpInstance() throws Exception { Assert.assertEquals( node1.getProperties().getIPAddress(IP_TYPE), new Expression(new IPServiceEvaluator("svc1", IP_TYPE, 0), null, null).evaluate(cluster, clusterNodes, node1)); Assert.assertEquals( node2.getProperties().getIPAddress(IP_TYPE), new Expression(new IPServiceEvaluator("svc1", IP_TYPE, 1), null, null).evaluate(cluster, clusterNodes, node1)); }
@Test public void testParseMacroName() throws SyntaxException { Assert.assertEquals(new HostServiceEvaluator("abc", null), Evaluators.evaluatorFor("host.service.abc", null)); Assert.assertEquals(new IPServiceEvaluator("abc", "access_v4", null), Evaluators.evaluatorFor("ip.access_v4.service.abc", null)); Assert.assertEquals(new IPServiceEvaluator("abc", "bind_v4", null), Evaluators.evaluatorFor("ip.service.abc", null)); Assert.assertTrue(Evaluators.evaluatorFor("cluster.owner", null) instanceof ClusterOwnerEvaluator); for (String macro : ImmutableList.of("", "host.service.", "IP_OF_SERVICE.abc", "SERVICE_BULLSHIT_abc")) { try { Evaluators.evaluatorFor(macro, null); Assert.fail("'" + macro + "' should have thrown syntax exception."); } catch (SyntaxException e) { // expected } } } }
assertEquals(new Expression(new HostServiceEvaluator("abc", null), null, null), new Parser("host.service.abc").parse()); assertEquals(new Expression(new IPServiceEvaluator("namenode", "access_v4", null), null, null), new Parser("ip.access_v4.service.namenode").parse()); assertEquals(new Expression(new IPServiceEvaluator("a-b-c", "bind_v4", null), null, null), new Parser("ip.bind_v4.service.a-b-c").parse()); assertEquals(new Expression(new IPSelfEvaluator("access_v4"), null, null), assertEquals(new Expression(new IPSelfEvaluator("bind_v4"), null, null), new Parser("ip.self").parse()); assertEquals(new Expression(new IPServiceEvaluator("a-b-c", "bind_v4", null), null, null), new Parser("ip.service.a-b-c").parse()); assertEquals(new Expression(new IPServiceEvaluator("a.b.c", "external", null), null, null), new Parser("ip.external.service.a.b.c").parse()); assertEquals(new Expression(new IPServiceEvaluator("a_b_c", "internal", null), null, null), new Parser("ip.internal.service.a_b_c").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), "$:80", null), new Parser("map(ip.access.service.nn,'$:80')").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), "\"$\"", null), new Parser("map(ip.access.service.nn,'\"$\"')").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), "$:80", null), new Parser("map(ip.access.service.nn,\"$:80\")").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), "'$'", null), new Parser("map(ip.access.service.nn,\"'$'\")").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), null, "-"), new Parser("join(ip.access.service.nn,'-')").parse()); assertEquals(new Expression(new IPServiceEvaluator("nn", "access", null), null, "\n"),