Skip to content

Commit 673ac45

Browse files
committed
tests: default fields
1 parent 8d03206 commit 673ac45

7 files changed

Lines changed: 43 additions & 12 deletions

File tree

src/main/java/io/odpf/depot/message/field/FieldUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
public class FieldUtils {
1111
private static final Gson GSON = new GsonBuilder().create();
1212

13-
public static String convertToString(Object value, Function<Object, String> toStringFunc) {
13+
public static String convertToStringForMessageTypes(Object value, Function<Object, String> toStringFunc) {
1414
if (value instanceof Collection<?>) {
1515
return "[" + ((Collection<?>) value)
1616
.stream()
@@ -22,7 +22,7 @@ public static String convertToString(Object value, Function<Object, String> toSt
2222

2323
/**
2424
* This method is used to convert default types which string formats are not in json.
25-
* for example: a list of doubles value or list of string etc
25+
* for example: a list of doubles, strings, enum etc.
2626
*/
2727
public static String convertToString(Object value) {
2828
if (value instanceof Collection<?>) {
@@ -32,7 +32,7 @@ public static String convertToString(Object value) {
3232
}
3333
}
3434

35-
public static String convertToStringWithQuotes(Object value, Function<Object, String> toStringFunc) {
35+
public static String convertToStringForSpecialTypes(Object value, Function<Object, String> toStringFunc) {
3636
if (value instanceof Collection<?>) {
3737
return "[" + ((Collection<?>) value)
3838
.stream()

src/main/java/io/odpf/depot/message/field/proto/DurationField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public DurationField(Object value) {
1616

1717
@Override
1818
public String getString() {
19-
return FieldUtils.convertToStringWithQuotes(value, this::getDurationString);
19+
return FieldUtils.convertToStringForSpecialTypes(value, this::getDurationString);
2020
}
2121

2222
private String getDurationString(Object field) {

src/main/java/io/odpf/depot/message/field/proto/MessageField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public MessageField(Object value) {
2020

2121
@Override
2222
public String getString() {
23-
return FieldUtils.convertToString(value, this::getMessageString);
23+
return FieldUtils.convertToStringForMessageTypes(value, this::getMessageString);
2424
}
2525

2626
private String getMessageString(Object ob) {

src/main/java/io/odpf/depot/message/field/proto/StructField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ public StructField(Object value) {
1414
@Override
1515
public String getString() {
1616
// This Struct is already converted into strings, so we just need to concat it.
17-
return FieldUtils.convertToString(value, Object::toString);
17+
return FieldUtils.convertToStringForMessageTypes(value, Object::toString);
1818
}
1919
}

src/main/java/io/odpf/depot/message/field/proto/TimeStampField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ public static Instant getInstant(Object field) {
2222

2323
@Override
2424
public String getString() {
25-
return FieldUtils.convertToStringWithQuotes(value, Object::toString);
25+
return FieldUtils.convertToStringForSpecialTypes(value, Object::toString);
2626
}
2727
}

src/test/java/io/odpf/depot/message/field/proto/DefaultFieldTest.java

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.odpf.depot.message.field.proto;
22

3+
import io.odpf.depot.message.field.GenericField;
34
import org.junit.Assert;
45
import org.junit.Test;
56

@@ -10,8 +11,8 @@
1011
public class DefaultFieldTest {
1112

1213
@Test
13-
public void shouldReturnDefaultStringField() {
14-
DefaultField f = new DefaultField("test");
14+
public void shouldReturnDefaultPrimitiveFields() {
15+
GenericField f = new DefaultField("test");
1516
Assert.assertEquals("test", f.getString());
1617
List<String> strings = new ArrayList<>();
1718
strings.add("test1");
@@ -30,7 +31,35 @@ public void shouldReturnDefaultStringField() {
3031
tss.add(Instant.ofEpochSecond(1000121010));
3132
tss.add(Instant.ofEpochSecond(1002121010));
3233
tss.add(Instant.ofEpochSecond(1003121010));
33-
TimeStampField tsf = new TimeStampField(tss);
34-
Assert.assertEquals("[\"2001-09-10T11:23:30Z\",\"2001-10-03T14:56:50Z\",\"2001-10-15T04:43:30Z\"]", tsf.getString());
34+
f = new TimeStampField(tss);
35+
Assert.assertEquals("[\"2001-09-10T11:23:30Z\",\"2001-10-03T14:56:50Z\",\"2001-10-15T04:43:30Z\"]", f.getString());
36+
37+
List<Boolean> booleanList = new ArrayList<>();
38+
booleanList.add(true);
39+
booleanList.add(false);
40+
booleanList.add(true);
41+
f = new DefaultField(booleanList);
42+
Assert.assertEquals("[true,false,true]", f.getString());
43+
44+
List<Double> doubles = new ArrayList<>();
45+
doubles.add(123.93);
46+
doubles.add(13.0);
47+
doubles.add(23.0);
48+
f = new DefaultField(doubles);
49+
Assert.assertEquals("[123.93,13.0,23.0]", f.getString());
50+
51+
List<TestEnum> enums = new ArrayList<>();
52+
enums.add(TestEnum.INACTIVE);
53+
enums.add(TestEnum.COMPLETED);
54+
enums.add(TestEnum.RUNNING);
55+
f = new DefaultField(enums);
56+
Assert.assertEquals("[\"INACTIVE\",\"COMPLETED\",\"RUNNING\"]", f.getString());
57+
58+
}
59+
60+
private enum TestEnum {
61+
COMPLETED,
62+
RUNNING,
63+
INACTIVE
3564
}
3665
}

src/test/java/io/odpf/depot/message/proto/ProtoOdpfParsedMessageTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,9 @@ public void shouldGetRepeatableStructField() throws IOException {
417417

418418
Parser protoParser = StencilClientFactory.getClient().getParser(TestMessageBQ.class.getName());
419419
OdpfMessageSchema odpfMessageSchema = odpfMessageParser.getSchema("io.odpf.depot.TestMessageBQ", descriptorsMap);
420-
List<?> attributes = (List<?>) ((ProtoField) (new ProtoOdpfParsedMessage(protoParser.parse(message.toByteArray())).getFieldByName("attributes", odpfMessageSchema))).getValue();
420+
ProtoOdpfParsedMessage protoOdpfParsedMessage = new ProtoOdpfParsedMessage(protoParser.parse(message.toByteArray()));
421+
List<?> attributes = (List<?>) ((ProtoField) (protoOdpfParsedMessage.getFieldByName("attributes", odpfMessageSchema))).getValue();
422+
protoOdpfParsedMessage.getMapping(odpfMessageSchema);
421423
JSONArray expectedArray = new JSONArray();
422424
JSONArray actualArray = new JSONArray();
423425
for (int ii = 0; ii < message.getAttributesCount(); ii++) {

0 commit comments

Comments
 (0)