OLD | NEW |
1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
(...skipping 22 matching lines...) Expand all Loading... |
33 import com.google.protobuf.Descriptors.FieldDescriptor; | 33 import com.google.protobuf.Descriptors.FieldDescriptor; |
34 import protobuf_unittest.UnittestOptimizeFor.TestOptimizedForSize; | 34 import protobuf_unittest.UnittestOptimizeFor.TestOptimizedForSize; |
35 import protobuf_unittest.UnittestProto; | 35 import protobuf_unittest.UnittestProto; |
36 import protobuf_unittest.UnittestProto.ForeignMessage; | 36 import protobuf_unittest.UnittestProto.ForeignMessage; |
37 import protobuf_unittest.UnittestProto.TestAllExtensions; | 37 import protobuf_unittest.UnittestProto.TestAllExtensions; |
38 import protobuf_unittest.UnittestProto.TestAllTypes; | 38 import protobuf_unittest.UnittestProto.TestAllTypes; |
39 import protobuf_unittest.UnittestProto.TestPackedTypes; | 39 import protobuf_unittest.UnittestProto.TestPackedTypes; |
40 import protobuf_unittest.UnittestProto.TestRequired; | 40 import protobuf_unittest.UnittestProto.TestRequired; |
41 import protobuf_unittest.UnittestProto.TestRequiredForeign; | 41 import protobuf_unittest.UnittestProto.TestRequiredForeign; |
42 import protobuf_unittest.UnittestProto.TestUnpackedTypes; | 42 import protobuf_unittest.UnittestProto.TestUnpackedTypes; |
| 43 import java.util.Map; |
43 import junit.framework.TestCase; | 44 import junit.framework.TestCase; |
44 | 45 |
45 import java.util.Map; | |
46 | |
47 /** | 46 /** |
48 * Unit test for {@link AbstractMessage}. | 47 * Unit test for {@link AbstractMessage}. |
49 * | 48 * |
50 * @author kenton@google.com Kenton Varda | 49 * @author kenton@google.com Kenton Varda |
51 */ | 50 */ |
52 public class AbstractMessageTest extends TestCase { | 51 public class AbstractMessageTest extends TestCase { |
53 /** | 52 /** |
54 * Extends AbstractMessage and wraps some other message object. The methods | 53 * Extends AbstractMessage and wraps some other message object. The methods |
55 * of the Message interface which aren't explicitly implemented by | 54 * of the Message interface which aren't explicitly implemented by |
56 * AbstractMessage are forwarded to the wrapped object. This allows us to | 55 * AbstractMessage are forwarded to the wrapped object. This allows us to |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 checkNotEqual(eUnknownFields, fUnknownFields); | 484 checkNotEqual(eUnknownFields, fUnknownFields); |
486 checkEqualsIsConsistent(eUnknownFields); | 485 checkEqualsIsConsistent(eUnknownFields); |
487 checkEqualsIsConsistent(fUnknownFields); | 486 checkEqualsIsConsistent(fUnknownFields); |
488 | 487 |
489 // Subsequent reconstitutions should be identical | 488 // Subsequent reconstitutions should be identical |
490 UnittestProto.TestEmptyMessage eUnknownFields2 = | 489 UnittestProto.TestEmptyMessage eUnknownFields2 = |
491 UnittestProto.TestEmptyMessage.parseFrom(e.toByteArray()); | 490 UnittestProto.TestEmptyMessage.parseFrom(e.toByteArray()); |
492 checkEqualsIsConsistent(eUnknownFields, eUnknownFields2); | 491 checkEqualsIsConsistent(eUnknownFields, eUnknownFields2); |
493 } | 492 } |
494 | 493 |
495 | |
496 /** | 494 /** |
497 * Asserts that the given proto has symmetric equals and hashCode methods. | 495 * Asserts that the given proto has symmetric equals and hashCode methods. |
498 */ | 496 */ |
499 private void checkEqualsIsConsistent(Message message) { | 497 private void checkEqualsIsConsistent(Message message) { |
500 // Object should be equal to itself. | 498 // Object should be equal to itself. |
501 assertEquals(message, message); | 499 assertEquals(message, message); |
502 | 500 |
503 // Object should be equal to a dynamic copy of itself. | 501 // Object should be equal to a dynamic copy of itself. |
504 DynamicMessage dynamic = DynamicMessage.newBuilder(message).build(); | 502 DynamicMessage dynamic = DynamicMessage.newBuilder(message).build(); |
505 checkEqualsIsConsistent(message, dynamic); | 503 checkEqualsIsConsistent(message, dynamic); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 ByteString.copyFrom(new byte[]{(byte) 0x80}); // A lone continuation byt
e. | 540 ByteString.copyFrom(new byte[]{(byte) 0x80}); // A lone continuation byt
e. |
543 try { | 541 try { |
544 AbstractMessageLite.checkByteStringIsUtf8(byteString); | 542 AbstractMessageLite.checkByteStringIsUtf8(byteString); |
545 fail("Expected AbstractMessageLite.checkByteStringIsUtf8 to throw IllegalA
rgumentException"); | 543 fail("Expected AbstractMessageLite.checkByteStringIsUtf8 to throw IllegalA
rgumentException"); |
546 } catch (IllegalArgumentException exception) { | 544 } catch (IllegalArgumentException exception) { |
547 assertEquals("Byte string is not UTF-8.", exception.getMessage()); | 545 assertEquals("Byte string is not UTF-8.", exception.getMessage()); |
548 } | 546 } |
549 } | 547 } |
550 | 548 |
551 } | 549 } |
OLD | NEW |