SingleFieldBuilderV3Test.java
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 package com.google.protobuf;
32 
33 import protobuf_unittest.UnittestProto.TestAllTypes;
34 import protobuf_unittest.UnittestProto.TestAllTypesOrBuilder;
35 import junit.framework.TestCase;
36 
43 public class SingleFieldBuilderV3Test extends TestCase {
44 
47  SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder> builder =
48  new SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder>(
49  TestAllTypes.getDefaultInstance(), mockParent, false);
50  assertSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
51  assertEquals(TestAllTypes.getDefaultInstance(), builder.getBuilder().buildPartial());
52  assertEquals(0, mockParent.getInvalidationCount());
53 
54  builder.getBuilder().setOptionalInt32(10);
55  assertEquals(0, mockParent.getInvalidationCount());
56  TestAllTypes message = builder.build();
57  assertEquals(10, message.getOptionalInt32());
58 
59  // Test that we receive invalidations now that build has been called.
60  assertEquals(0, mockParent.getInvalidationCount());
61  builder.getBuilder().setOptionalInt32(20);
62  assertEquals(1, mockParent.getInvalidationCount());
63 
64  // Test that we don't keep getting invalidations on every change
65  builder.getBuilder().setOptionalInt32(30);
66  assertEquals(1, mockParent.getInvalidationCount());
67  }
68 
69  public void testSetMessage() {
71  SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder> builder =
72  new SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder>(
73  TestAllTypes.getDefaultInstance(), mockParent, false);
74  builder.setMessage(TestAllTypes.newBuilder().setOptionalInt32(0).build());
75  assertEquals(0, builder.getMessage().getOptionalInt32());
76 
77  // Update message using the builder
78  builder.getBuilder().setOptionalInt32(1);
79  assertEquals(0, mockParent.getInvalidationCount());
80  assertEquals(1, builder.getBuilder().getOptionalInt32());
81  assertEquals(1, builder.getMessage().getOptionalInt32());
82  builder.build();
83  builder.getBuilder().setOptionalInt32(2);
84  assertEquals(2, builder.getBuilder().getOptionalInt32());
85  assertEquals(2, builder.getMessage().getOptionalInt32());
86 
87  // Make sure message stays cached
88  assertSame(builder.getMessage(), builder.getMessage());
89  }
90 
91  public void testClear() {
93  SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder> builder =
94  new SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder>(
95  TestAllTypes.getDefaultInstance(), mockParent, false);
96  builder.setMessage(TestAllTypes.newBuilder().setOptionalInt32(0).build());
97  assertNotSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
98  builder.clear();
99  assertSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
100 
101  builder.getBuilder().setOptionalInt32(1);
102  assertNotSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
103  builder.clear();
104  assertSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
105  }
106 
107  public void testMerge() {
109  SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder> builder =
110  new SingleFieldBuilderV3<TestAllTypes, TestAllTypes.Builder, TestAllTypesOrBuilder>(
111  TestAllTypes.getDefaultInstance(), mockParent, false);
112 
113  // Merge into default field.
114  builder.mergeFrom(TestAllTypes.getDefaultInstance());
115  assertSame(TestAllTypes.getDefaultInstance(), builder.getMessage());
116 
117  // Merge into non-default field on existing builder.
118  builder.getBuilder().setOptionalInt32(2);
119  builder.mergeFrom(TestAllTypes.newBuilder().setOptionalDouble(4.0).buildPartial());
120  assertEquals(2, builder.getMessage().getOptionalInt32());
121  assertEquals(4.0, builder.getMessage().getOptionalDouble(), 0.0);
122 
123  // Merge into non-default field on existing message
124  builder.setMessage(TestAllTypes.newBuilder().setOptionalInt32(10).buildPartial());
125  builder.mergeFrom(TestAllTypes.newBuilder().setOptionalDouble(5.0).buildPartial());
126  assertEquals(10, builder.getMessage().getOptionalInt32());
127  assertEquals(5.0, builder.getMessage().getOptionalDouble(), 0.0);
128  }
129 }
com.google.protobuf.SingleFieldBuilderV3Test.testClear
void testClear()
Definition: SingleFieldBuilderV3Test.java:91
com.google.protobuf.SingleFieldBuilderV3.getMessage
MType getMessage()
Definition: SingleFieldBuilderV3.java:98
com.google.protobuf.SingleFieldBuilderV3.build
MType build()
Definition: SingleFieldBuilderV3.java:111
com.google.protobuf.SingleFieldBuilderV3Test.testBasicUseAndInvalidations
void testBasicUseAndInvalidations()
Definition: SingleFieldBuilderV3Test.java:45
com.google.protobuf.SingleFieldBuilderV3.mergeFrom
SingleFieldBuilderV3< MType, BType, IType > mergeFrom(MType value)
Definition: SingleFieldBuilderV3.java:175
com.google.protobuf.TestUtil
Definition: core/src/test/java/com/google/protobuf/TestUtil.java:254
com.google.protobuf.SingleFieldBuilderV3.setMessage
SingleFieldBuilderV3< MType, BType, IType > setMessage(MType message)
Definition: SingleFieldBuilderV3.java:159
com.google.protobuf.TestUtil.MockBuilderParent
Definition: core/src/test/java/com/google/protobuf/TestUtil.java:3850
com.google.protobuf.SingleFieldBuilderV3Test
Definition: SingleFieldBuilderV3Test.java:43
com.google.protobuf.SingleFieldBuilderV3.getBuilder
BType getBuilder()
Definition: SingleFieldBuilderV3.java:125
com.google.protobuf.SingleFieldBuilderV3Test.testMerge
void testMerge()
Definition: SingleFieldBuilderV3Test.java:107
protobuf_unittest
Definition: map_test_util_impl.h:39
com.google.protobuf.SingleFieldBuilderV3Test.testSetMessage
void testSetMessage()
Definition: SingleFieldBuilderV3Test.java:69
com.google.protobuf.SingleFieldBuilderV3
Definition: SingleFieldBuilderV3.java:55
gmock_test_utils.TestCase
TestCase
Definition: gmock_test_utils.py:97
message
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glcorearb.h:2695


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:58