18
18
19
19
public class MLHttpClientFactoryTests {
20
20
21
+ private static final String TEST_HOST = "api.openai.com" ;
22
+ private static final String HTTP = "http" ;
23
+ private static final String HTTPS = "https" ;
24
+ private static final AtomicBoolean PRIVATE_IP_DISABLED = new AtomicBoolean (false );
25
+ private static final AtomicBoolean PRIVATE_IP_ENABLED = new AtomicBoolean (true );
26
+
21
27
@ Rule
22
28
public ExpectedException expectedException = ExpectedException .none ();
23
29
@@ -29,84 +35,120 @@ public void test_getSdkAsyncHttpClient_success() {
29
35
30
36
@ Test
31
37
public void test_validateIp_validIp_noException () throws Exception {
32
- AtomicBoolean privateIpEnabled = new AtomicBoolean (false );
33
- MLHttpClientFactory .validate ("http" , "api.openai.com" , 80 , privateIpEnabled );
38
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , 80 , PRIVATE_IP_DISABLED );
39
+ MLHttpClientFactory .validate (HTTPS , TEST_HOST , 443 , PRIVATE_IP_DISABLED );
40
+ MLHttpClientFactory .validate (HTTP , "127.0.0.1" , 80 , PRIVATE_IP_ENABLED );
41
+ MLHttpClientFactory .validate (HTTPS , "127.0.0.1" , 443 , PRIVATE_IP_ENABLED );
42
+ MLHttpClientFactory .validate (HTTP , "177.16.0.1" , 80 , PRIVATE_IP_DISABLED );
43
+ MLHttpClientFactory .validate (HTTP , "177.0.1.1" , 80 , PRIVATE_IP_DISABLED );
44
+ MLHttpClientFactory .validate (HTTP , "177.0.0.2" , 80 , PRIVATE_IP_DISABLED );
45
+ MLHttpClientFactory .validate (HTTP , "::ffff" , 80 , PRIVATE_IP_DISABLED );
34
46
}
35
47
36
48
@ Test
37
49
public void test_validateIp_rarePrivateIp_throwException () throws Exception {
38
- AtomicBoolean privateIpEnabled = new AtomicBoolean (false );
39
50
try {
40
- MLHttpClientFactory .validate ("http" , "0254.020.00.01" , 80 , privateIpEnabled );
51
+ MLHttpClientFactory .validate (HTTP , "0254.020.00.01" , 80 , PRIVATE_IP_DISABLED );
41
52
} catch (IllegalArgumentException e ) {
42
53
assertNotNull (e );
43
54
}
44
55
45
56
try {
46
- MLHttpClientFactory .validate ("http" , "172.1048577" , 80 , privateIpEnabled );
57
+ MLHttpClientFactory .validate (HTTP , "172.1048577" , 80 , PRIVATE_IP_DISABLED );
47
58
} catch (Exception e ) {
48
59
assertNotNull (e );
49
60
}
50
61
51
62
try {
52
- MLHttpClientFactory .validate ("http" , "2886729729" , 80 , privateIpEnabled );
63
+ MLHttpClientFactory .validate (HTTP , "2886729729" , 80 , PRIVATE_IP_DISABLED );
64
+ } catch (IllegalArgumentException e ) {
65
+ assertNotNull (e );
66
+ }
67
+
68
+ try {
69
+ MLHttpClientFactory .validate (HTTP , "192.11010049" , 80 , PRIVATE_IP_DISABLED );
70
+ } catch (IllegalArgumentException e ) {
71
+ assertNotNull (e );
72
+ }
73
+
74
+ try {
75
+ MLHttpClientFactory .validate (HTTP , "3232300545" , 80 , PRIVATE_IP_DISABLED );
53
76
} catch (IllegalArgumentException e ) {
54
77
assertNotNull (e );
55
78
}
56
79
57
80
try {
58
- MLHttpClientFactory .validate ("http" , "192.11010049 " , 80 , privateIpEnabled );
81
+ MLHttpClientFactory .validate (HTTP , "0:0:0:0:0:ffff:127.0.0.1 " , 80 , PRIVATE_IP_DISABLED );
59
82
} catch (IllegalArgumentException e ) {
60
83
assertNotNull (e );
61
84
}
62
85
63
86
try {
64
- MLHttpClientFactory .validate ("http" , "3232300545 " , 80 , privateIpEnabled );
87
+ MLHttpClientFactory .validate (HTTP , "153.24.76.232 " , 80 , PRIVATE_IP_DISABLED );
65
88
} catch (IllegalArgumentException e ) {
66
89
assertNotNull (e );
67
90
}
68
91
69
92
try {
70
- MLHttpClientFactory .validate ("http" , "0:0:0:0:0:ffff:127 .0.0.1" , 80 , privateIpEnabled );
93
+ MLHttpClientFactory .validate (HTTP , "177 .0.0.1" , 80 , PRIVATE_IP_DISABLED );
71
94
} catch (IllegalArgumentException e ) {
72
95
assertNotNull (e );
73
96
}
74
97
75
98
try {
76
- MLHttpClientFactory .validate ("http" , "153.24.76.232 " , 80 , privateIpEnabled );
99
+ MLHttpClientFactory .validate (HTTP , "12.16.2.3 " , 80 , PRIVATE_IP_DISABLED );
77
100
} catch (IllegalArgumentException e ) {
78
101
assertNotNull (e );
79
102
}
80
103
}
81
104
82
105
@ Test
83
106
public void test_validateIp_rarePrivateIp_NotThrowException () throws Exception {
84
- AtomicBoolean privateIpEnabled = new AtomicBoolean (true );
85
- MLHttpClientFactory .validate ("http" , "0254.020.00.01" , 80 , privateIpEnabled );
86
- MLHttpClientFactory .validate ("http" , "172.1048577" , 80 , privateIpEnabled );
87
- MLHttpClientFactory .validate ("http" , "2886729729" , 80 , privateIpEnabled );
88
- MLHttpClientFactory .validate ("http" , "192.11010049" , 80 , privateIpEnabled );
89
- MLHttpClientFactory .validate ("http" , "3232300545" , 80 , privateIpEnabled );
90
- MLHttpClientFactory .validate ("http" , "0:0:0:0:0:ffff:127.0.0.1" , 80 , privateIpEnabled );
91
- MLHttpClientFactory .validate ("http" , "153.24.76.232" , 80 , privateIpEnabled );
107
+ MLHttpClientFactory .validate (HTTP , "0254.020.00.01" , 80 , PRIVATE_IP_ENABLED );
108
+ MLHttpClientFactory .validate (HTTPS , "0254.020.00.01" , 443 , PRIVATE_IP_ENABLED );
109
+ MLHttpClientFactory .validate (HTTP , "172.1048577" , 80 , PRIVATE_IP_ENABLED );
110
+ MLHttpClientFactory .validate (HTTP , "2886729729" , 80 , PRIVATE_IP_ENABLED );
111
+ MLHttpClientFactory .validate (HTTP , "192.11010049" , 80 , PRIVATE_IP_ENABLED );
112
+ MLHttpClientFactory .validate (HTTP , "3232300545" , 80 , PRIVATE_IP_ENABLED );
113
+ MLHttpClientFactory .validate (HTTP , "0:0:0:0:0:ffff:127.0.0.1" , 80 , PRIVATE_IP_ENABLED );
114
+ MLHttpClientFactory .validate (HTTPS , "0:0:0:0:0:ffff:127.0.0.1" , 443 , PRIVATE_IP_ENABLED );
115
+ MLHttpClientFactory .validate (HTTP , "153.24.76.232" , 80 , PRIVATE_IP_ENABLED );
116
+ MLHttpClientFactory .validate (HTTP , "10.24.76.186" , 80 , PRIVATE_IP_ENABLED );
117
+ MLHttpClientFactory .validate (HTTPS , "10.24.76.186" , 443 , PRIVATE_IP_ENABLED );
92
118
}
93
119
94
120
@ Test
95
121
public void test_validateSchemaAndPort_success () throws Exception {
96
- MLHttpClientFactory .validate ("http" , "api.openai.com" , 80 , new AtomicBoolean ( false ) );
122
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , 80 , PRIVATE_IP_DISABLED );
97
123
}
98
124
99
125
@ Test
100
126
public void test_validateSchemaAndPort_notAllowedSchema_throwException () throws Exception {
101
127
expectedException .expect (IllegalArgumentException .class );
102
- MLHttpClientFactory .validate ("ftp" , "api.openai.com" , 80 , new AtomicBoolean ( false ) );
128
+ MLHttpClientFactory .validate ("ftp" , TEST_HOST , 80 , PRIVATE_IP_DISABLED );
103
129
}
104
130
105
131
@ Test
106
- public void test_validateSchemaAndPort_portNotInRange_throwException () throws Exception {
132
+ public void test_validateSchemaAndPort_portNotInRange1_throwException () throws Exception {
107
133
expectedException .expect (IllegalArgumentException .class );
108
134
expectedException .expectMessage ("Port out of range: 65537" );
109
- MLHttpClientFactory .validate ("https" , "api.openai.com" , 65537 , new AtomicBoolean (false ));
135
+ MLHttpClientFactory .validate (HTTPS , TEST_HOST , 65537 , PRIVATE_IP_DISABLED );
136
+ }
137
+
138
+ @ Test
139
+ public void test_validateSchemaAndPort_portNotInRange2_throwException () throws Exception {
140
+ expectedException .expect (IllegalArgumentException .class );
141
+ expectedException .expectMessage ("Port out of range: -10" );
142
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , -10 , PRIVATE_IP_DISABLED );
143
+ }
144
+
145
+ @ Test
146
+ public void test_validatePort_boundaries_success () throws Exception {
147
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , 65536 , PRIVATE_IP_DISABLED );
148
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , 0 , PRIVATE_IP_DISABLED );
149
+ MLHttpClientFactory .validate (HTTP , TEST_HOST , -1 , PRIVATE_IP_DISABLED );
150
+ MLHttpClientFactory .validate (HTTPS , TEST_HOST , -1 , PRIVATE_IP_DISABLED );
151
+ MLHttpClientFactory .validate (null , TEST_HOST , -1 , PRIVATE_IP_DISABLED );
110
152
}
111
153
112
154
}
0 commit comments