new SpecifiersReachabilityAnswerer( SpecifiersReachabilityQuestion.builder() .setHeaderConstraints( PacketHeaderConstraints.builder() .setDstIp(NODE1_LOOPBACK_IP.toString())
@Test public void testApplicationsSpecification() { ImmutableSortedSet<Protocol> applications = ImmutableSortedSet.of(Protocol.DNS); SpecifiersReachabilityQuestion question = SpecifiersReachabilityQuestion.builder() .setHeaderConstraints( PacketHeaderConstraints.builder().setApplications(applications).build()) .build(); HeaderSpace headerSpace = question.getHeaderSpace(); assertThat(headerSpace.getDstProtocols(), equalTo(applications)); }
@Test public void testDestinationIpSpaceSpecification() { SpecifiersReachabilityQuestion question = SpecifiersReachabilityQuestion.builder() .setHeaderConstraints( PacketHeaderConstraints.builder().setDstIp("1.2.3.0/24 - 1.2.3.4").build()) .build(); assertThat( question.getReachabilityParameters().getDestinationIpSpaceSpecifier(), equalTo( new ConstantIpSpaceSpecifier( IpWildcardSetIpSpace.builder() .including(new IpWildcard("1.2.3.0/24")) .excluding(new IpWildcard("1.2.3.4")) .build()))); }
@Test public void testSourceIpWildcardDifferenceAccepted() { SpecifiersReachabilityQuestion question = SpecifiersReachabilityQuestion.builder() .setHeaderConstraints( PacketHeaderConstraints.builder().setSrcIp("1.2.3.0/24 \\ 1.2.3.4").build()) .build(); assertThat( question.getReachabilityParameters().getSourceIpSpaceSpecifier(), equalTo( new ConstantIpSpaceSpecifier( IpWildcardSetIpSpace.builder() .including(new IpWildcard("1.2.3.0/24")) .excluding(new IpWildcard("1.2.3.4")) .build()))); }
@Test public void testInvalidApplicationsSpecification() { ImmutableSortedSet<Protocol> applications = ImmutableSortedSet.of(Protocol.DNS); IntegerSpace dstPorts = IntegerSpace.of(new SubRange(1, 2)); exception.expect(IllegalArgumentException.class); SpecifiersReachabilityQuestion.builder() .setHeaderConstraints( PacketHeaderConstraints.builder() .setDstPorts(dstPorts) .setApplications(applications) .build()) .build(); }