@@ -61,6 +61,7 @@ public void setup() throws Exception
6161 generator ().generate ();
6262 }
6363
64+ @ SuppressWarnings ("MethodLength" )
6465 @ Test
6566 public void testMessage1 () throws Exception
6667 {
@@ -81,6 +82,8 @@ public void testMessage1() throws Exception
8182 final Object setEncoder = encoder .getClass ().getMethod ("tag5" ).invoke (encoder );
8283 set (setEncoder , "firstChoice" , boolean .class , false );
8384 set (setEncoder , "secondChoice" , boolean .class , true );
85+
86+ set (encoder , "tag6" , String .class , "This is some variable length data" );
8487 }
8588
8689 { // Decode version 0
@@ -90,12 +93,16 @@ public void testMessage1() throws Exception
9093 assertNull (get (decoderVersion0 , "tag3" ));
9194 assertThat (get (decoderVersion0 , "tag4" ).toString (), is ("NULL_VAL" ));
9295 assertNull (get (decoderVersion0 , "tag5" ));
96+ final StringBuilder tag6Value = new StringBuilder ();
97+ get (decoderVersion0 , "tag6" , tag6Value );
98+ assertThat (tag6Value .length (), is (0 ));
9399
94100 assertEquals (0 , decoderVersion0 .getClass ().getMethod ("tag1SinceVersion" ).invoke (null ));
95101 assertEquals (1 , decoderVersion0 .getClass ().getMethod ("tag2SinceVersion" ).invoke (null ));
96102 assertEquals (2 , decoderVersion0 .getClass ().getMethod ("tag3SinceVersion" ).invoke (null ));
97103 assertEquals (3 , decoderVersion0 .getClass ().getMethod ("tag4SinceVersion" ).invoke (null ));
98104 assertEquals (4 , decoderVersion0 .getClass ().getMethod ("tag5SinceVersion" ).invoke (null ));
105+ assertEquals (5 , decoderVersion0 .getClass ().getMethod ("tag6SinceVersion" ).invoke (null ));
99106 }
100107
101108 { // Decode version 1
@@ -105,6 +112,9 @@ public void testMessage1() throws Exception
105112 assertNull (get (decoderVersion1 , "tag3" ));
106113 assertThat (get (decoderVersion1 , "tag4" ).toString (), is ("NULL_VAL" ));
107114 assertNull (get (decoderVersion1 , "tag5" ));
115+ final StringBuilder tag6Value = new StringBuilder ();
116+ get (decoderVersion1 , "tag6" , tag6Value );
117+ assertThat (tag6Value .length (), is (0 ));
108118 }
109119
110120 { // Decode version 2
@@ -116,6 +126,9 @@ public void testMessage1() throws Exception
116126 assertEquals (300 , get (compositeDecoder2 , "value" ));
117127 assertThat (get (decoderVersion2 , "tag4" ).toString (), is ("NULL_VAL" ));
118128 assertNull (get (decoderVersion2 , "tag5" ));
129+ final StringBuilder tag6Value = new StringBuilder ();
130+ get (decoderVersion2 , "tag6" , tag6Value );
131+ assertThat (tag6Value .length (), is (0 ));
119132 }
120133
121134 { // Decode version 3
@@ -128,6 +141,9 @@ public void testMessage1() throws Exception
128141 final Object enumConstant = getAEnumConstant (decoderVersion3 , "AEnum" , 1 );
129142 assertEquals (enumConstant , get (decoderVersion3 , "tag4" ));
130143 assertNull (get (decoderVersion3 , "tag5" ));
144+ final StringBuilder tag6Value = new StringBuilder ();
145+ get (decoderVersion3 , "tag6" , tag6Value );
146+ assertThat (tag6Value .length (), is (0 ));
131147 }
132148
133149 { // Decode version 4
@@ -143,6 +159,27 @@ public void testMessage1() throws Exception
143159 assertNotNull (setDecoder );
144160 assertEquals (false , get (setDecoder , "firstChoice" ));
145161 assertEquals (true , get (setDecoder , "secondChoice" ));
162+ final StringBuilder tag6Value = new StringBuilder ();
163+ get (decoderVersion4 , "tag6" , tag6Value );
164+ assertThat (tag6Value .length (), is (0 ));
165+ }
166+
167+ { // Decode version 5
168+ final Object decoderVersion5 = getMessage1Decoder (buffer , 14 , 5 );
169+ assertEquals (100 , get (decoderVersion5 , "tag1" ));
170+ assertEquals (200 , get (decoderVersion5 , "tag2" ));
171+ final Object compositeDecoder4 = get (decoderVersion5 , "tag3" );
172+ assertNotNull (compositeDecoder4 );
173+ assertEquals (300 , get (compositeDecoder4 , "value" ));
174+ final Object enumConstant = getAEnumConstant (decoderVersion5 , "AEnum" , 1 );
175+ assertEquals (enumConstant , get (decoderVersion5 , "tag4" ));
176+ final Object setDecoder = get (decoderVersion5 , "tag5" );
177+ assertNotNull (setDecoder );
178+ assertEquals (false , get (setDecoder , "firstChoice" ));
179+ assertEquals (true , get (setDecoder , "secondChoice" ));
180+ final StringBuilder tag6Value = new StringBuilder ();
181+ get (decoderVersion5 , "tag6" , tag6Value );
182+ assertThat (tag6Value .toString (), is ("This is some variable length data" ));
146183 }
147184 }
148185
0 commit comments