22
33import static org .junit .Assert .*;
44
5- import java .util .Map ;
6-
75import org .junit .Test ;
86
97import com .github .dockerjava .api .model .ExposedPort ;
8+ import com .github .dockerjava .api .model .PortBinding ;
109import com .github .dockerjava .api .model .Ports ;
11- import com .github .dockerjava .api .model .Ports .Binding ;
1210
1311/**
1412 * Defines legal syntax for entering port bindings.
1513 */
1614public class PortBindingParserTest {
17-
15+
16+ private static final ExposedPort TCP_8080 = ExposedPort .tcp (8080 );
17+
1818 @ Test
19- public void completeDefinition_blank () {
20- assertCreatesBinding ("127.0.0.1:80 8080/tcp" , Ports .Binding ("127.0.0.1" , 80 ), ExposedPort .tcp (8080 ));
19+ public void fullDefinition_blank () {
20+ assertCreatesBindings ("127.0.0.1:80 8080/tcp" ,
21+ new PortBinding (Ports .Binding ("127.0.0.1" , 80 ), TCP_8080 ));
2122 }
2223
2324 @ Test
2425 public void noProtocol_blank () {
25- assertCreatesBinding ("127.0.0.1:80 8080" , Ports .Binding ("127.0.0.1" , 80 ), ExposedPort .tcp (8080 ));
26+ assertCreatesBindings ("127.0.0.1:80 8080" ,
27+ new PortBinding (Ports .Binding ("127.0.0.1" , 80 ), TCP_8080 ));
2628 }
2729
2830 @ Test
29- public void noHost_blank () {
30- assertCreatesBinding ("80 8080/tcp" , Ports .Binding (80 ), ExposedPort .tcp (8080 ));
31+ public void noHostIp_blank () {
32+ assertCreatesBindings ("80 8080/tcp" ,
33+ new PortBinding (Ports .Binding (80 ), TCP_8080 ));
3134 }
3235
3336 @ Test
34- public void minimalDefiniton_blank () {
35- assertCreatesBinding ("80 8080" , Ports .Binding (80 ), ExposedPort .tcp (8080 ));
37+ public void portsOnly_blank () {
38+ assertCreatesBindings ("80 8080" ,
39+ new PortBinding (Ports .Binding (80 ), TCP_8080 ));
3640 }
3741
3842 @ Test
39- public void completeDefinition_colon () {
40- assertCreatesBinding ("127.0.0.1:80:8080/tcp" , Ports .Binding ("127.0.0.1" , 80 ), ExposedPort .tcp (8080 ));
43+ public void fullDefinition_colon () {
44+ assertCreatesBindings ("127.0.0.1:80:8080/tcp" ,
45+ new PortBinding (Ports .Binding ("127.0.0.1" , 80 ), TCP_8080 ));
4146 }
4247
4348 @ Test
4449 public void noProtocol_colon () {
45- assertCreatesBinding ("127.0.0.1:80:8080" , Ports .Binding ("127.0.0.1" , 80 ), ExposedPort .tcp (8080 ));
50+ assertCreatesBindings ("127.0.0.1:80:8080" ,
51+ new PortBinding (Ports .Binding ("127.0.0.1" , 80 ), TCP_8080 ));
4652 }
4753
4854 @ Test
49- public void noHost_colon () {
50- assertCreatesBinding ("80:8080/tcp" , Ports .Binding (80 ), ExposedPort .tcp (8080 ));
55+ public void noHostIp_colon () {
56+ assertCreatesBindings ("80:8080/tcp" ,
57+ new PortBinding (Ports .Binding (80 ), TCP_8080 ));
5158 }
5259
5360 @ Test
54- public void minimalDefiniton_colon () {
55- assertCreatesBinding ("80:8080" , Ports .Binding (80 ), ExposedPort .tcp (8080 ));
61+ public void portsOnly_colon () {
62+ assertCreatesBindings ("80:8080" ,
63+ new PortBinding (Ports .Binding (80 ), TCP_8080 ));
5664 }
5765
5866 @ Test (expected = IllegalArgumentException .class )
5967 public void syntaxError () {
60- PortBindingParser .parse ("nonsense" );
68+ PortBindingParser .parse2 ("nonsense" );
6169 }
6270
6371 @ Test
6472 public void parseEmptyString () {
65- Map < ExposedPort , Binding []> bindings = PortBindingParser .parse ("" ). getBindings ( );
66- assertTrue ( "no binding" , bindings .isEmpty () );
73+ PortBinding [] bindings = PortBindingParser .parse2 ("" );
74+ assertEquals ( 0 , bindings .length );
6775 }
6876
6977 @ Test
7078 public void exposedUdpPort () {
71- assertCreatesBinding ("80 8080/udp" , Ports .Binding (80 ), ExposedPort .udp (8080 ));
79+ assertCreatesBindings ("80 8080/udp" ,
80+ new PortBinding (Ports .Binding (80 ), ExposedPort .udp (8080 )));
7281 }
7382
7483 @ Test
75- public void dynamicPort () {
76- assertCreatesBinding ("127.0.0.1: 8080" , Ports .Binding ("127.0.0.1" , 0 ), ExposedPort .tcp (8080 ));
84+ public void dynamicHostPort_blank () {
85+ assertCreatesBindings ("127.0.0.1: 8080" ,
86+ new PortBinding (Ports .Binding ("127.0.0.1" , null ), TCP_8080 ));
7787 }
7888
7989 @ Test
80- public void dynamicPort_colon () {
81- assertCreatesBinding ("127.0.0.1::8080" , Ports .Binding ("127.0.0.1" , 0 ), ExposedPort .tcp (8080 ));
90+ public void dynamicHostPort_colon () {
91+ assertCreatesBindings ("127.0.0.1::8080" ,
92+ new PortBinding (Ports .Binding ("127.0.0.1" , null ), TCP_8080 ));
8293 }
8394
8495 @ Test
@@ -92,21 +103,19 @@ public void twoBindings_DosStyle() {
92103 }
93104
94105 private void twoBindings (String input ) {
95- Ports ports = PortBindingParser .parse (input );
96- assertEquals (2 , ports .getBindings ().size ());
97- assertContainsBinding (ports , ExposedPort .tcp (8080 ), Ports .Binding (80 ));
98- assertContainsBinding (ports , ExposedPort .tcp (8081 ), Ports .Binding (81 ));
106+ assertCreatesBindings (input ,
107+ new PortBinding (Ports .Binding (80 ), ExposedPort .tcp (8080 )),
108+ new PortBinding (Ports .Binding (81 ), ExposedPort .tcp (8081 )));
99109 }
100110
101- private static void assertCreatesBinding (String input , Binding binding , ExposedPort exposedPort ) {
102- Ports ports = PortBindingParser .parse (input );
103- assertContainsBinding (ports , exposedPort , binding );
104- }
111+ private static void assertCreatesBindings (String input , PortBinding ... expected ) {
112+ PortBinding [] parsed = PortBindingParser .parse2 (input );
113+ assertEquals ("wrong number of PortBindings created" , expected .length , parsed .length );
105114
106- private static void assertContainsBinding ( Ports ports , ExposedPort exposedPort , Binding expectedBinding ) {
107- Binding [] bindings = ports . getBindings (). get ( exposedPort );
108- assertNotNull ( "no binding was created for " + exposedPort , bindings );
109- assertEquals ( expectedBinding , bindings [ 0 ]);
115+ for ( int i = 0 ; i < parsed . length ; i ++ ) {
116+ assertEquals ( "PortBinding #" + i , expected [ i ]. getBinding (), parsed [ i ]. getBinding () );
117+ assertEquals ( "PortBinding # " + i , expected [ i ]. getExposedPort (), parsed [ i ]. getExposedPort () );
118+ }
110119 }
111-
120+
112121}
0 commit comments