Skip to content

Commit f62bd27

Browse files
committed
add optional method to builder
1 parent 085cef1 commit f62bd27

File tree

3 files changed

+41
-121
lines changed

3 files changed

+41
-121
lines changed

protoc-gen-java-optional-test/src/test/java/DataTypesTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,46 @@ void should_have_empty_optional_on_no_data() {
142142
assertThat(message.getOptionalSubMessage()).isEmpty();
143143
}
144144

145+
@Test
146+
void should_have_optional_populated_with_field_data_in_builder() {
147+
TestMessage.Builder builder = populatedTestMessage();
148+
149+
assertThat(builder.getOptionalOneofString()).contains("one-of");
150+
assertThat(builder.getOptionalOptionalBool()).contains(true);
151+
assertThat(builder.getOptionalOptionalString()).contains("opt-string");
152+
assertThat(builder.getOptionalOptionalBytes()).contains(ByteString.copyFromUtf8("opt-bytes"));
153+
assertThat(builder.getOptionalOptionalEnum()).contains(TestEnum.value1);
154+
assertThat(builder.getOptionalOptionalFloat()).contains(3.5F);
155+
assertThat(builder.getOptionalOptionalDouble()).contains(3.5D);
156+
assertThat(builder.getOptionalOptionalFixed32()).contains(10);
157+
assertThat(builder.getOptionalOptionalFixed64()).contains(10L);
158+
assertThat(builder.getOptionalOptionalInt32()).contains(10);
159+
assertThat(builder.getOptionalOptionalInt64()).contains(10L);
160+
assertThat(builder.getOptionalOptionalUint32()).contains(10);
161+
assertThat(builder.getOptionalOptionalUint64()).contains(10L);
162+
assertThat(builder.getOptionalSubMessage()).contains(TestSubMessage.newBuilder().setString("value").build());
163+
}
164+
165+
@Test
166+
void should_have_empty_optional_on_no_data_in_builder() {
167+
TestMessage.Builder builder = TestMessage.newBuilder();
168+
169+
assertThat(builder.getOptionalOneofString()).isEmpty();
170+
assertThat(builder.getOptionalOptionalBool()).isEmpty();
171+
assertThat(builder.getOptionalOptionalString()).isEmpty();
172+
assertThat(builder.getOptionalOptionalBytes()).isEmpty();
173+
assertThat(builder.getOptionalOptionalEnum()).isEmpty();
174+
assertThat(builder.getOptionalOptionalFloat()).isEmpty();
175+
assertThat(builder.getOptionalOptionalDouble()).isEmpty();
176+
assertThat(builder.getOptionalOptionalFixed32()).isEmpty();
177+
assertThat(builder.getOptionalOptionalFixed64()).isEmpty();
178+
assertThat(builder.getOptionalOptionalInt32()).isEmpty();
179+
assertThat(builder.getOptionalOptionalInt64()).isEmpty();
180+
assertThat(builder.getOptionalOptionalUint32()).isEmpty();
181+
assertThat(builder.getOptionalOptionalUint64()).isEmpty();
182+
assertThat(builder.getOptionalSubMessage()).isEmpty();
183+
}
184+
145185
private static TestMessage.Builder populatedTestMessage() {
146186
return TestMessage.newBuilder()
147187
.setOneofString("one-of")

protoc-gen-java-optional/dependency-reduced-pom.xml

Lines changed: 0 additions & 120 deletions
This file was deleted.

protoc-gen-java-optional/src/main/java/org/grpcmock/protoc/plugin/OptionalGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private Optional<File> createFile(
130130

131131
private Optional<String> createBuilderMethods(FieldDescriptorProto fieldDescriptor) {
132132
if (hasFieldPresence(fieldDescriptor)) {
133-
return Stream.of(setOrClearMethod(fieldDescriptor), optionalSetOrClearMethod(fieldDescriptor))
133+
return Stream.of(setOrClearMethod(fieldDescriptor), optionalSetOrClearMethod(fieldDescriptor), optionalGet(fieldDescriptor))
134134
.filter(Optional::isPresent)
135135
.map(Optional::get)
136136
.collect(Collectors.collectingAndThen(Collectors.joining(DELIMITER), Optional::of));

0 commit comments

Comments
 (0)