return new ShorthandNodeSpecifier(new NodesSpecifier(trimmedInput));
@Test public void testDifference() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo - bar"), equalTo( new DifferenceNodeSpecifier( new ShorthandNodeSpecifier(new NodesSpecifier("foo")), new ShorthandNodeSpecifier(new NodesSpecifier("bar"))))); } }
@Test public void testLimitRemoteNodes() { BgpSessionCompatibilityQuestion q = new BgpSessionCompatibilityQuestion(null, new NodesSpecifier("node1"), null, null); Multiset<Row> rows = getQuestionResults(q); assertThat(rows, equalTo(ImmutableMultiset.of(ROW_2))); }
@Test public void testLimitNodes() { BgpSessionCompatibilityQuestion q = new BgpSessionCompatibilityQuestion(new NodesSpecifier("node1"), null, null, null); Multiset<Row> rows = getQuestionResults(q); assertThat(rows, equalTo(ImmutableMultiset.of(ROW_1))); }
@Test public void getMatchingNodesByName() { NodesSpecifier specifier = new NodesSpecifier("name:lhr-.*"); String matchingRouter = "lhr-border1"; String nonMatchingRouter = "svr-border1"; Set<String> nodes = new ImmutableSet.Builder<String>().add(matchingRouter).add(nonMatchingRouter).build(); Set<String> matchingNodes = specifier.getMatchingNodesByName(nodes); assertThat(matchingNodes, hasItem(matchingRouter)); assertThat(matchingNodes, not(hasItem(nonMatchingRouter))); }
@Test public void testPrefixAndNodeSpecifierIsConjunction() { Multiset<Row> answer = getRows(_prefixTracingInfo, Prefix.parse("1.1.1.1/32"), new NodesSpecifier("n2")); assertThat(answer, hasSize(1)); }
@Override public AnswerElement smtRoles(RoleQuestion q) { Roles roles = Roles.create(this, q.getDstIps(), new NodesSpecifier(q.getNodeRegex())); return roles.asAnswer(q.getType()); }
@Test public void constructorExplicitName() { NodesSpecifier specifier = new NodesSpecifier("name:lhr-.*"); assertThat(specifier.getType(), equalTo(Type.NAME)); assertThat( specifier.getRegex().pattern(), equalTo(Pattern.compile("lhr-.*", Pattern.CASE_INSENSITIVE).pattern())); }
@Test public void constructorImplicitName() { NodesSpecifier specifier = new NodesSpecifier("lhr-.*"); assertThat(specifier.getType(), equalTo(Type.NAME)); assertThat( specifier.getRegex().pattern(), equalTo(Pattern.compile("lhr-.*", Pattern.CASE_INSENSITIVE).pattern())); }
@Test public void testShorthandNodeSpecifier() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("name:.*"), equalTo(new ShorthandNodeSpecifier(new NodesSpecifier("name:.*")))); }
@Test public void constructorRole() { NodesSpecifier specifier = new NodesSpecifier("role:dim:svr.*"); assertThat(specifier.getType(), equalTo(Type.ROLE)); assertThat(specifier.getRoleDimension(), equalTo("dim")); assertThat( specifier.getRegex().pattern(), equalTo(Pattern.compile("svr.*", Pattern.CASE_INSENSITIVE).pattern())); }
@Test public void resolve() { Configuration node1 = new Configuration("node1", ConfigurationFormat.CISCO_IOS); Configuration node2 = new Configuration("node2", ConfigurationFormat.CISCO_IOS); MockSpecifierContext ctxt = MockSpecifierContext.builder() .setConfigs(ImmutableMap.of("node1", node1, "node2", node2)) .build(); assertThat( new ShorthandNodeSpecifier(new NodesSpecifier("node1")).resolve(ctxt), equalTo(ImmutableSet.of("node1"))); } }
Set<String> roleNodes = entry.getValue(); String regex = namesToRegex(Sets.intersection(innerIncludeNodes, roleNodes)); innerNRQuestion.setNodeRegex(new NodesSpecifier(regex)); Answerer innerAnswerer = _batfish.createAnswerer(innerQuestion); AnswerElement innerAnswer = innerAnswerer.answer();
question.setNodes(new NodesSpecifier("((ios)|(juniper)).*", true)); AaaAuthenticationLoginAnswerer answerer = new AaaAuthenticationLoginAnswerer(question, batfish); TableAnswerElement answer = answerer.answer();
@Test public void getMatchingNodesByRole() { NodesSpecifier specifier = new NodesSpecifier("role:dim:match.*");
@Test public void testErrorForNoMatchingNodes() throws IOException { Configuration c1 = _cb.setHostname("c1").build(); SortedMap<String, Configuration> configs = ImmutableSortedMap.of(c1.getHostname(), c1); IBatfish batfish = new MockBatfish(configs, MockSpecifierContext.builder().setConfigs(configs).build()); // Test that exception is thrown if no nodes match TestFiltersQuestion question = new TestFiltersQuestion(new NodesSpecifier("fake_node"), null, null, null); TestFiltersAnswerer answerer = new TestFiltersAnswerer(question, batfish); _thrown.expect(BatfishException.class); _thrown.expectMessage("No matching filters"); answerer.answer(); }
@Test public void testErrorForNoMatchingFilters() throws IOException { Configuration c1 = _cb.setHostname("c1").build(); SortedMap<String, Configuration> configs = ImmutableSortedMap.of(c1.getHostname(), c1); IBatfish batfish = new MockBatfish(configs, MockSpecifierContext.builder().setConfigs(configs).build()); // Test that exception is thrown if node is found, but no filters match TestFiltersQuestion question = new TestFiltersQuestion(new NodesSpecifier(c1.getHostname()), "fake_filter", null, null); TestFiltersAnswerer answerer = new TestFiltersAnswerer(question, batfish); _thrown.expect(BatfishException.class); _thrown.expectMessage("No matching filters"); answerer.answer(); } }
@Test public void testToReachabilityParameters_ingressNodes_ingressInterface() { NodesSpecifier nodesSpecifier = new NodesSpecifier("nodes"); InterfacesSpecifier interfacesSpecifier = new InterfacesSpecifier("interfaces"); ReachabilitySettings settings = ReachabilitySettings.builder() .setActions(ImmutableList.of()) .setHeaderSpace(HeaderSpace.builder().build()) .setIngressNodes(nodesSpecifier) .setIngressInterfaces(interfacesSpecifier) .build(); ReachabilityParameters params = settings.toReachabilityParameters(); assertThat( params.getSourceLocationSpecifier(), equalTo( new IntersectionLocationSpecifier( LocationSpecifiers.from(interfacesSpecifier), LocationSpecifiers.from(nodesSpecifier)))); } }
new TestFiltersQuestion(new NodesSpecifier(c1.getHostname()), null, null, null); TestFiltersAnswerer answerer = new TestFiltersAnswerer(question, batfish); Rows rows = answerer.answer().getRows(); question = new TestFiltersQuestion(new NodesSpecifier(c1.getHostname()), "acl1", null, null); answerer = new TestFiltersAnswerer(question, batfish); rows = answerer.answer().getRows();