@@ -38,4 +38,73 @@ void allowsAddressIncludedAndNotExcluded() {
3838 assertThat (rules .isAllowed ("10.1.2.3" ), is (false ));
3939 assertThat (rules .isAllowed ("10.5.5.5" ), is (false ));
4040 }
41+
42+ @ Test
43+ void onlyAllowSingleIp () {
44+ NetworkAddressRules rules =
45+ NetworkAddressRules .builder ()
46+ .allow ("10.1.1.1" )
47+ .build ();
48+
49+ assertThat (rules .isAllowed ("10.1.1.1" ), is (true ));
50+ assertThat (rules .isAllowed ("10.1.1.0" ), is (false ));
51+ assertThat (rules .isAllowed ("10.1.1.2" ), is (false ));
52+ }
53+
54+ @ Test
55+ void onlyDenySingleIp () {
56+ NetworkAddressRules rules =
57+ NetworkAddressRules .builder ()
58+ .deny ("10.1.1.1" )
59+ .build ();
60+
61+ assertThat (rules .isAllowed ("10.1.1.1" ), is (false ));
62+ assertThat (rules .isAllowed ("10.1.1.0" ), is (true ));
63+ assertThat (rules .isAllowed ("10.1.1.2" ), is (true ));
64+ }
65+
66+ @ Test
67+ void allowAndDenySingleIps () {
68+ NetworkAddressRules rules =
69+ NetworkAddressRules .builder ()
70+ .deny ("10.1.1.1" )
71+ .allow ("10.1.1.3" )
72+ .build ();
73+
74+ assertThat (rules .isAllowed ("10.1.1.0" ), is (false ));
75+ assertThat (rules .isAllowed ("10.1.1.1" ), is (false ));
76+ assertThat (rules .isAllowed ("10.1.1.2" ), is (false ));
77+ assertThat (rules .isAllowed ("10.1.1.3" ), is (true ));
78+ assertThat (rules .isAllowed ("10.1.1.4" ), is (false ));
79+ }
80+
81+ @ Test
82+ void allowRangeAndDenySingleIp () {
83+ NetworkAddressRules rules =
84+ NetworkAddressRules .builder ()
85+ .allow ("10.1.1.1-10.1.1.3" )
86+ .deny ("10.1.1.2" )
87+ .build ();
88+
89+ assertThat (rules .isAllowed ("10.1.1.0" ), is (false ));
90+ assertThat (rules .isAllowed ("10.1.1.1" ), is (true ));
91+ assertThat (rules .isAllowed ("10.1.1.2" ), is (false ));
92+ assertThat (rules .isAllowed ("10.1.1.3" ), is (true ));
93+ assertThat (rules .isAllowed ("10.1.1.4" ), is (false ));
94+ }
95+
96+ @ Test
97+ void denyRangeAndAllowSingleIp () {
98+ NetworkAddressRules rules =
99+ NetworkAddressRules .builder ()
100+ .deny ("10.1.1.1-10.1.1.3" )
101+ .allow ("10.1.1.2" )
102+ .build ();
103+
104+ assertThat (rules .isAllowed ("10.1.1.0" ), is (false ));
105+ assertThat (rules .isAllowed ("10.1.1.1" ), is (false ));
106+ assertThat (rules .isAllowed ("10.1.1.2" ), is (false ));
107+ assertThat (rules .isAllowed ("10.1.1.3" ), is (false ));
108+ assertThat (rules .isAllowed ("10.1.1.4" ), is (false ));
109+ }
41110}
0 commit comments