|  | @@ -105,6 +105,12 @@ public class NanoTest extends TestCase {
 | 
											
												
													
														|  |      assertEquals(456, newMsg.d);
 |  |      assertEquals(456, newMsg.d);
 | 
											
												
													
														|  |      assertEquals(2, msg.nestedMsg.bb);
 |  |      assertEquals(2, msg.nestedMsg.bb);
 | 
											
												
													
														|  |      assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum);
 |  |      assertEquals(SimpleMessageNano.BAR, msg.defaultNestedEnum);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    msg.nestedMsg = null;
 | 
											
												
													
														|  | 
 |  | +    assertTrue(msgSerializedSize != msg.getSerializedSize());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    msg.clear();
 | 
											
												
													
														|  | 
 |  | +    assertEquals(0, msg.getSerializedSize());
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    public void testRecursiveMessageNano() throws Exception {
 |  |    public void testRecursiveMessageNano() throws Exception {
 | 
											
										
											
												
													
														|  | @@ -143,6 +149,12 @@ public class NanoTest extends TestCase {
 | 
											
												
													
														|  |      assertEquals(3, newMsg.repeatedRecursiveMessageNano[0].id);
 |  |      assertEquals(3, newMsg.repeatedRecursiveMessageNano[0].id);
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +  public void testMessageNoFields() {
 | 
											
												
													
														|  | 
 |  | +    SingleMessageNano msg = new SingleMessageNano();
 | 
											
												
													
														|  | 
 |  | +    assertEquals(0, msg.getSerializedSize());
 | 
											
												
													
														|  | 
 |  | +    assertEquals(0, MessageNano.toByteArray(msg).length);
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |    public void testNanoRequiredInt32() throws Exception {
 |  |    public void testNanoRequiredInt32() throws Exception {
 | 
											
												
													
														|  |      TestAllTypesNano msg = new TestAllTypesNano();
 |  |      TestAllTypesNano msg = new TestAllTypesNano();
 | 
											
												
													
														|  |      msg.id = 123;
 |  |      msg.id = 123;
 | 
											
										
											
												
													
														|  | @@ -2898,6 +2910,20 @@ public class NanoTest extends TestCase {
 | 
											
												
													
														|  |      assertTrue(Arrays.equals(enums, message.getExtension(RepeatedExtensions.repeatedEnum)));
 |  |      assertTrue(Arrays.equals(enums, message.getExtension(RepeatedExtensions.repeatedEnum)));
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +  public void testNullExtensions() throws Exception {
 | 
											
												
													
														|  | 
 |  | +    // Check that clearing the extension on an empty message is a no-op.
 | 
											
												
													
														|  | 
 |  | +    Extensions.ExtendableMessage message = new Extensions.ExtendableMessage();
 | 
											
												
													
														|  | 
 |  | +    message.setExtension(SingularExtensions.someMessage, null);
 | 
											
												
													
														|  | 
 |  | +    assertEquals(0, MessageNano.toByteArray(message).length);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // Check that the message is empty after setting and clearing an extension.
 | 
											
												
													
														|  | 
 |  | +    AnotherMessage another = new AnotherMessage();
 | 
											
												
													
														|  | 
 |  | +    message.setExtension(SingularExtensions.someMessage, another);
 | 
											
												
													
														|  | 
 |  | +    assertTrue(MessageNano.toByteArray(message).length > 0);
 | 
											
												
													
														|  | 
 |  | +    message.setExtension(SingularExtensions.someMessage, null);
 | 
											
												
													
														|  | 
 |  | +    assertEquals(0, MessageNano.toByteArray(message).length);
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |    public void testUnknownFields() throws Exception {
 |  |    public void testUnknownFields() throws Exception {
 | 
											
												
													
														|  |      // Check that we roundtrip (serialize and deserialize) unrecognized fields.
 |  |      // Check that we roundtrip (serialize and deserialize) unrecognized fields.
 | 
											
												
													
														|  |      AnotherMessage message = new AnotherMessage();
 |  |      AnotherMessage message = new AnotherMessage();
 |