MCPcopy Create free account
hub / github.com/grpc/grpc-java / AddressFilterTest

Class AddressFilterTest

xds/src/test/java/io/grpc/xds/AddressFilterTest.java:32–86  ·  view source on GitHub ↗

Tests for AddressFilter.

Source from the content-addressed store, hash-verified

30
31/** Tests for {@link AddressFilter}. */
32@RunWith(JUnit4.class)
33public class AddressFilterTest {
34 @Test
35 public void filterAddresses() {
36 Attributes.Key<String> key1 = Attributes.Key.create("key1");
37 Attributes attributes1 = Attributes.newBuilder().set(key1, "value1").build();
38 EquivalentAddressGroup eag0 = new EquivalentAddressGroup(new InetSocketAddress(8000));
39 EquivalentAddressGroup eag1 =
40 new EquivalentAddressGroup(new InetSocketAddress(8001), attributes1);
41 EquivalentAddressGroup eag2 = new EquivalentAddressGroup(new InetSocketAddress(8002));
42 EquivalentAddressGroup eag3 =
43 new EquivalentAddressGroup(
44 Arrays.<SocketAddress>asList(new InetSocketAddress(8003), new InetSocketAddress(8083)));
45 eag0 = AddressFilter.setPathFilter(eag0, Arrays.asList("A", "C"));
46 eag1 = AddressFilter.setPathFilter(eag1, Arrays.asList("A", "B"));
47 eag2 = AddressFilter.setPathFilter(eag2, Arrays.asList("D", "C"));
48 eag3 = AddressFilter.setPathFilter(eag3, Arrays.asList("A", "B"));
49
50 List<EquivalentAddressGroup> addresses =
51 AddressFilter.filter(Arrays.asList(eag0, eag1, eag2, eag3), "A");
52 assertThat(addresses).hasSize(3);
53 addresses = AddressFilter.filter(addresses, "B");
54 assertThat(addresses).hasSize(2);
55 EquivalentAddressGroup filteredAddress0 = addresses.get(0);
56 EquivalentAddressGroup filteredAddress1 = addresses.get(1);
57 assertThat(filteredAddress0.getAddresses()).containsExactlyElementsIn(eag1.getAddresses());
58 assertThat(filteredAddress0.getAttributes().get(key1)).isEqualTo("value1");
59 assertThat(filteredAddress1.getAddresses()).containsExactlyElementsIn(eag3.getAddresses());
60 }
61
62 @Test
63 public void longerPathChain() {
64 List<EquivalentAddressGroup> addresses = Arrays.asList(
65 newEag(new InetSocketAddress(8000), Arrays.asList("A", "B", "C")),
66 newEag(new InetSocketAddress(8001), Arrays.asList("Z", "B", "C")),
67 newEag(new InetSocketAddress(8002), Arrays.asList("A", "Z", "C")),
68 newEag(new InetSocketAddress(8003), Arrays.asList("A", "B", "Z")));
69 addresses = AddressFilter.filter(addresses, "A");
70 assertThat(addresses).hasSize(3);
71
72 addresses = AddressFilter.filter(addresses, "B");
73 assertThat(addresses).hasSize(2);
74
75 addresses = AddressFilter.filter(addresses, "C");
76 assertThat(addresses).hasSize(1);
77 assertThat(addresses.get(0).getAddresses()).containsExactly(new InetSocketAddress(8000));
78
79 addresses = AddressFilter.filter(addresses, "D");
80 assertThat(addresses).hasSize(0);
81 }
82
83 private static EquivalentAddressGroup newEag(InetSocketAddress address, List<String> names) {
84 return AddressFilter.setPathFilter(new EquivalentAddressGroup(address), names);
85 }
86}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected