@@ -29,4 +29,118 @@ void onlyHardcodedNodes() {
29
29
30
30
assertIterableEquals (hardcodedNodes , selectedNodes );
31
31
}
32
+
33
+ @ Test
34
+ void bannedIpV4Node () {
35
+ String bannedAddress = "123.456.890.123" ;
36
+ int port = 4567 ;
37
+
38
+ var hardcodedNodes = List .of (
39
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
40
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
41
+ new BtcNodes .BtcNode (null , null , bannedAddress , port , "@bob" ),
42
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
43
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
44
+ );
45
+
46
+ List <BtcNodes .BtcNode > mutableHardcodedList = new ArrayList <>(hardcodedNodes );
47
+ List <String > filterProvidedBtcNodes = Collections .emptyList ();
48
+ String bannedFullAddress = bannedAddress + ":" + port ;
49
+ List <String > bannedBtcNodes = List .of (bannedFullAddress );
50
+
51
+ List <BtcNodes .BtcNode > selectedNodes = FederatedBtcNodeProvider
52
+ .getNodes (mutableHardcodedList , filterProvidedBtcNodes , bannedBtcNodes );
53
+
54
+ var expected = List .of (
55
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
56
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
57
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
58
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
59
+ );
60
+ assertIterableEquals (expected , selectedNodes );
61
+ }
62
+
63
+ @ Test
64
+ void bannedIpV6Node () {
65
+ String bannedAddress = "2001:db8:85a3:8d3:1319:8a2e:370" ;
66
+ int port = 7348 ;
67
+
68
+ var hardcodedNodes = List .of (
69
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
70
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
71
+ new BtcNodes .BtcNode (null , null , bannedAddress , port , "@bob" ),
72
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
73
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
74
+ );
75
+
76
+ List <BtcNodes .BtcNode > mutableHardcodedList = new ArrayList <>(hardcodedNodes );
77
+ List <String > filterProvidedBtcNodes = Collections .emptyList ();
78
+ String bannedFullAddress = "[" + bannedAddress + "]" + ":" + port ;
79
+ List <String > bannedBtcNodes = List .of (bannedFullAddress );
80
+
81
+ List <BtcNodes .BtcNode > selectedNodes = FederatedBtcNodeProvider
82
+ .getNodes (mutableHardcodedList , filterProvidedBtcNodes , bannedBtcNodes );
83
+
84
+ var expected = List .of (
85
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
86
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
87
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
88
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
89
+ );
90
+ assertIterableEquals (expected , selectedNodes );
91
+ }
92
+
93
+ @ Test
94
+ void bannedHostNameNode () {
95
+ var hardcodedNodes = List .of (
96
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
97
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
98
+ new BtcNodes .BtcNode (null , "btc1.dnsalias.net" , null ,
99
+ 5678 , "@bob" ),
100
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
101
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
102
+ );
103
+
104
+ List <BtcNodes .BtcNode > mutableHardcodedList = new ArrayList <>(hardcodedNodes );
105
+ List <String > filterProvidedBtcNodes = Collections .emptyList ();
106
+ List <String > bannedBtcNodes = List .of ("btc1.dnsalias.net:5678" );
107
+
108
+ List <BtcNodes .BtcNode > selectedNodes = FederatedBtcNodeProvider
109
+ .getNodes (mutableHardcodedList , filterProvidedBtcNodes , bannedBtcNodes );
110
+
111
+ var expected = List .of (
112
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
113
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
114
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
115
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
116
+ );
117
+ assertIterableEquals (expected , selectedNodes );
118
+ }
119
+
120
+ @ Test
121
+ void bannedOnionNode () {
122
+ var hardcodedNodes = List .of (
123
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
124
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
125
+ new BtcNodes .BtcNode (null , "bob.onion" , null ,
126
+ BtcNodes .BtcNode .DEFAULT_PORT , "@bob" ),
127
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
128
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
129
+ );
130
+
131
+ List <BtcNodes .BtcNode > mutableHardcodedList = new ArrayList <>(hardcodedNodes );
132
+ List <String > filterProvidedBtcNodes = Collections .emptyList ();
133
+ List <String > bannedBtcNodes = List .of ("bob.onion:8333" );
134
+
135
+ List <BtcNodes .BtcNode > selectedNodes = FederatedBtcNodeProvider
136
+ .getNodes (mutableHardcodedList , filterProvidedBtcNodes , bannedBtcNodes );
137
+
138
+ var expected = List .of (
139
+ new BtcNodes .BtcNode (null , "alice.onion" , null ,
140
+ BtcNodes .BtcNode .DEFAULT_PORT , "@alice" ),
141
+ new BtcNodes .BtcNode (null , "charlie.onion" , null ,
142
+ BtcNodes .BtcNode .DEFAULT_PORT , "@charlie" )
143
+ );
144
+ assertIterableEquals (expected , selectedNodes );
145
+ }
32
146
}
0 commit comments