"Both nodes and interfaces part of the flexible location specifier cannot be empty"); return new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier(nodesInput)); new FlexibleNodeSpecifierFactory().buildNodeSpecifier(nodesInput)), new InterfaceSpecifierInterfaceLocationSpecifier( new FlexibleInterfaceSpecifierFactory().buildInterfaceSpecifier(interfacesInput)));
@Test public void testNull() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier(null), equalTo(AllNodesNodeSpecifier.INSTANCE)); }
@Test public void testRefNodeRoles() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("rEf.NodeRole(a, b)"), equalTo(new RoleRegexNodeSpecifier(Pattern.compile("a", Pattern.CASE_INSENSITIVE), "b"))); }
FlexibleNodeSpecifierFactory nodeSpecifierFactory = new FlexibleNodeSpecifierFactory();
@Test public void parseFunc() { assertThat( parse("enter(foo)"), equalTo( new ToInterfaceLinkLocationSpecifier( new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo"))))); exception.expect(UnsupportedOperationException.class); assertThat( parse("exit(foo)"), equalTo( new ToInterfaceLinkLocationSpecifier( new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo"))))); }
@Test public void testGarbageIn() { exception.expect(IllegalArgumentException.class); new FlexibleNodeSpecifierFactory().buildNodeSpecifier("fofoao:klklk:opopo:oo"); }
@Test public void parseCombination() { LocationSpecifier leaf = new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo")); LocationSpecifier difference = new DifferenceLocationSpecifier(leaf, leaf); LocationSpecifier union = new UnionLocationSpecifier(leaf, leaf); LocationSpecifier unionDiff = new DifferenceLocationSpecifier(union, leaf); assertThat(parse("foo - foo"), equalTo(difference)); assertThat(parse("foo + foo"), equalTo(union)); assertThat(parse("foo + foo - foo"), equalTo(unionDiff)); }
@Test public void testShorthandNodeSpecifier() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("name:.*"), equalTo(new ShorthandNodeSpecifier(new NodesSpecifier("name:.*")))); }
@Test public void parseAtomic() { assertThat( parse("foo"), equalTo( new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo")))); assertThat( parse("ref.noderole(bar1, bar2)"), equalTo( new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory() .buildNodeSpecifier("ref.noderole(bar1, bar2)")))); assertThat( parse("[bar]"), equalTo( new InterfaceSpecifierInterfaceLocationSpecifier( new FlexibleInterfaceSpecifierFactory().buildInterfaceSpecifier("bar")))); assertThat( parse("foo[bar]"), equalTo( new IntersectionLocationSpecifier( new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo")), new InterfaceSpecifierInterfaceLocationSpecifier( new FlexibleInterfaceSpecifierFactory().buildInterfaceSpecifier("bar"))))); }
@Test public void testDifference() { assertThat( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo - bar"), equalTo( new DifferenceNodeSpecifier( new ShorthandNodeSpecifier(new NodesSpecifier("foo")), new ShorthandNodeSpecifier(new NodesSpecifier("bar"))))); } }