embulk-output-kintone 0.4.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +63 -5
- data/build.gradle +1 -0
- data/classpath/commons-csv-1.9.0.jar +0 -0
- data/classpath/embulk-output-kintone-1.1.0.jar +0 -0
- data/classpath/externalsortinginjava-0.6.2.jar +0 -0
- data/classpath/{shadow-kintone-java-client-0.4.1-all.jar → shadow-kintone-java-client-1.1.0-all.jar} +0 -0
- data/src/main/java/org/embulk/output/kintone/KintoneColumnOption.java +6 -2
- data/src/main/java/org/embulk/output/kintone/KintoneColumnType.java +572 -0
- data/src/main/java/org/embulk/output/kintone/KintoneColumnVisitor.java +214 -135
- data/src/main/java/org/embulk/output/kintone/KintoneMode.java +0 -1
- data/src/main/java/org/embulk/output/kintone/KintoneOutputPlugin.java +12 -5
- data/src/main/java/org/embulk/output/kintone/KintonePageOutput.java +180 -160
- data/src/main/java/org/embulk/output/kintone/KintoneSortColumn.java +33 -0
- data/src/main/java/org/embulk/output/kintone/PluginTask.java +35 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/DeserializeApplier.java +19 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/DeserializeException.java +7 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/Deserializer.java +279 -0
- data/src/main/java/org/embulk/output/kintone/reducer/CSVInputColumnVisitor.java +78 -0
- data/src/main/java/org/embulk/output/kintone/reducer/CSVOutputColumnVisitor.java +79 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReduceException.java +11 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReduceType.java +190 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReducedPageOutput.java +100 -0
- data/src/main/java/org/embulk/output/kintone/reducer/Reducer.java +355 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnOptionBuilder.java +9 -3
- data/src/test/java/org/embulk/output/kintone/KintoneColumnTypeTest.java +194 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorTest.java +703 -61
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorVerifier.java +45 -14
- data/src/test/java/org/embulk/output/kintone/KintonePageOutputVerifier.java +43 -5
- data/src/test/java/org/embulk/output/kintone/TestKintoneOutputPlugin.java +106 -16
- data/src/test/java/org/embulk/output/kintone/TestTaskMode.java +12 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduce.java +46 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduceException.java +50 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduceSubtable.java +46 -0
- data/src/test/java/org/embulk/output/kintone/deserializer/DeserializerTest.java +165 -0
- data/src/test/java/org/embulk/output/kintone/reducer/ReduceTypeTest.java +154 -0
- data/src/test/resources/org/embulk/output/kintone/task/config.yml +1 -1
- data/src/test/resources/org/embulk/output/kintone/task/mode/config.yml +110 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/input.csv +7 -7
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_records.jsonl +6 -6
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_records.jsonl +6 -3
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_records.jsonl +2 -2
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_records.jsonl +4 -4
- data/src/test/resources/org/embulk/output/kintone/task/mode/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/values_prefer_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/config.yml +171 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/input.csv +7 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_records.jsonl +4 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values_prefer_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/config.yml +36 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/derived_columns.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/input.csv +13 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/insert_add_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/update_update_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/config.yml +343 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/derived_columns.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/input.csv +13 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_records.jsonl +0 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values_prefer_nulls.json +1 -0
- metadata +73 -4
- data/classpath/embulk-output-kintone-0.4.1.jar +0 -0
@@ -1,160 +1,658 @@
|
|
1
1
|
package org.embulk.output.kintone;
|
2
2
|
|
3
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.date;
|
4
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.dateTime;
|
5
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.list;
|
6
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.number;
|
7
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.rows;
|
8
|
+
import static org.embulk.output.kintone.KintoneColumnTypeTest.time;
|
9
|
+
import static org.embulk.output.kintone.deserializer.DeserializerTest.assertTableRows;
|
3
10
|
import static org.hamcrest.MatcherAssert.assertThat;
|
4
11
|
import static org.hamcrest.Matchers.is;
|
5
12
|
import static org.hamcrest.Matchers.nullValue;
|
13
|
+
import static org.junit.Assert.assertThrows;
|
6
14
|
|
7
15
|
import com.google.common.collect.ImmutableMap;
|
8
|
-
import
|
16
|
+
import com.kintone.client.model.record.FieldType;
|
9
17
|
import java.time.Instant;
|
10
|
-
import java.time.LocalDate;
|
11
|
-
import java.time.ZoneId;
|
12
|
-
import java.time.ZonedDateTime;
|
13
18
|
import java.util.AbstractMap;
|
14
|
-
import java.util.
|
15
|
-
import java.util.List;
|
19
|
+
import java.util.Collections;
|
16
20
|
import java.util.Map;
|
17
21
|
import java.util.function.Function;
|
22
|
+
import org.embulk.output.kintone.deserializer.DeserializerTest;
|
18
23
|
import org.embulk.spi.Page;
|
19
24
|
import org.embulk.spi.Schema;
|
25
|
+
import org.embulk.spi.json.JsonParser;
|
20
26
|
import org.embulk.spi.time.Timestamp;
|
21
27
|
import org.embulk.spi.type.Types;
|
22
28
|
import org.junit.Test;
|
29
|
+
import org.msgpack.value.Value;
|
23
30
|
import org.msgpack.value.ValueFactory;
|
24
31
|
|
25
32
|
public class KintoneColumnVisitorTest {
|
33
|
+
private static final JsonParser PARSER = new JsonParser();
|
34
|
+
private static final String[] ROWS = {
|
35
|
+
DeserializerTest.TABLE_ROW.apply(0L),
|
36
|
+
DeserializerTest.TABLE_ROW.apply(1L),
|
37
|
+
DeserializerTest.TABLE_ROW.apply(2L),
|
38
|
+
DeserializerTest.TABLE_ROW.apply(3L),
|
39
|
+
DeserializerTest.TABLE_ROW.apply(4L),
|
40
|
+
DeserializerTest.TABLE_ROW.apply(5L),
|
41
|
+
};
|
42
|
+
|
26
43
|
@Test
|
27
44
|
public void test() {
|
28
|
-
|
29
|
-
KintoneColumnVisitorVerifier verifier =
|
30
|
-
new KintoneColumnVisitorVerifier(
|
31
|
-
schema,
|
32
|
-
build(ImmutableMap.builder()),
|
33
|
-
"STRING|SINGLE_LINE_TEXT",
|
34
|
-
OutputPageBuilder.build(schema, KintoneColumnVisitorTest::build));
|
45
|
+
KintoneColumnVisitorVerifier verifier = verifier(null, "STRING|SINGLE_LINE_TEXT");
|
35
46
|
verifier.verify(
|
36
47
|
(record, updateKey) -> {
|
37
48
|
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), is("false"));
|
38
|
-
assertThat(record.getNumberFieldValue("BOOLEAN"),
|
39
|
-
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is(""));
|
40
|
-
assertThat(record.getNumberFieldValue("LONG"),
|
49
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), is(number("0")));
|
50
|
+
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is("0"));
|
51
|
+
assertThat(record.getNumberFieldValue("LONG"), is(number("0")));
|
52
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), is(date("1970-01-01")));
|
53
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), is(date("1970-01-01")));
|
54
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), is(date("1969-12-31")));
|
55
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), is(time("00:00:00")));
|
56
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), is(time("09:00:00")));
|
57
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), is(time("16:00:00")));
|
58
|
+
assertThat(
|
59
|
+
record.getDateTimeFieldValue("LONG|DATETIME"), is(dateTime("1970-01-01T00:00:00Z")));
|
41
60
|
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), is("0.0"));
|
42
61
|
assertThat(record.getNumberFieldValue("DOUBLE"), is(number("0.0")));
|
62
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), is(date("1970-01-01")));
|
63
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), is(date("1970-01-01")));
|
64
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), is(date("1969-12-31")));
|
65
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), is(time("00:00:00")));
|
66
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), is(time("09:00:00")));
|
67
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), is(time("16:00:00")));
|
68
|
+
assertThat(
|
69
|
+
record.getDateTimeFieldValue("DOUBLE|DATETIME"),
|
70
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
43
71
|
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), is(""));
|
44
72
|
assertThat(record.getMultiLineTextFieldValue("STRING"), is(""));
|
45
|
-
assertThat(record.
|
46
|
-
assertThat(record.
|
73
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), is(""));
|
74
|
+
assertThat(record.getNumberFieldValue("STRING|NUMBER"), is(number("0")));
|
75
|
+
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list()));
|
76
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), is(""));
|
77
|
+
assertThat(record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list()));
|
47
78
|
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), is(""));
|
79
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), is(date("1970-01-01")));
|
80
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), is(date("1970-01-01")));
|
81
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), is(date("1969-12-31")));
|
82
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), is(time("00:00:00")));
|
83
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), is(time("09:00:00")));
|
84
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), is(time("16:00:00")));
|
85
|
+
assertThat(
|
86
|
+
record.getDateTimeFieldValue("STRING|DATETIME"),
|
87
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
48
88
|
assertThat(record.getLinkFieldValue("STRING|LINK"), is(""));
|
49
|
-
assertThat(record.
|
50
|
-
assertThat(
|
51
|
-
|
52
|
-
|
53
|
-
assertThat(record.
|
54
|
-
assertThat(record.
|
55
|
-
assertThat(record.
|
89
|
+
assertThat(record.getSubtableFieldValue("STRING|SUBTABLE"), is(list()));
|
90
|
+
assertThat(
|
91
|
+
record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"),
|
92
|
+
is("1970-01-01T00:00:00Z"));
|
93
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), is(number("0")));
|
94
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), is(date("1970-01-01")));
|
95
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), is(date("1970-01-01")));
|
96
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), is(date("1969-12-31")));
|
97
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), is(time("00:00:00")));
|
98
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), is(time("09:00:00")));
|
99
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), is(time("16:00:00")));
|
100
|
+
assertThat(
|
101
|
+
record.getDateTimeFieldValue("TIMESTAMP"), is(dateTime("1970-01-01T00:00:00Z")));
|
102
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("\"\""));
|
103
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), is("\"\""));
|
104
|
+
assertThat(record.getSubtableFieldValue("JSON|SUBTABLE"), is(list()));
|
105
|
+
assertThat(
|
106
|
+
record.getSingleLineTextFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), is("\"\""));
|
56
107
|
assertThat(updateKey.getField(), is("STRING|SINGLE_LINE_TEXT"));
|
57
108
|
assertThat(updateKey.getValue(), is(""));
|
58
109
|
});
|
59
110
|
verifier.verify(
|
60
111
|
(record, updateKey) -> {
|
61
112
|
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), is("false"));
|
62
|
-
assertThat(record.getNumberFieldValue("BOOLEAN"),
|
113
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), is(number("0")));
|
63
114
|
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is("0"));
|
64
115
|
assertThat(record.getNumberFieldValue("LONG"), is(number("0")));
|
116
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), is(date("1970-01-01")));
|
117
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), is(date("1970-01-01")));
|
118
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), is(date("1969-12-31")));
|
119
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), is(time("00:00:00")));
|
120
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), is(time("09:00:00")));
|
121
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), is(time("16:00:00")));
|
122
|
+
assertThat(
|
123
|
+
record.getDateTimeFieldValue("LONG|DATETIME"), is(dateTime("1970-01-01T00:00:00Z")));
|
65
124
|
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), is("0.0"));
|
66
125
|
assertThat(record.getNumberFieldValue("DOUBLE"), is(number("0.0")));
|
126
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), is(date("1970-01-01")));
|
127
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), is(date("1970-01-01")));
|
128
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), is(date("1969-12-31")));
|
129
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), is(time("00:00:00")));
|
130
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), is(time("09:00:00")));
|
131
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), is(time("16:00:00")));
|
132
|
+
assertThat(
|
133
|
+
record.getDateTimeFieldValue("DOUBLE|DATETIME"),
|
134
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
67
135
|
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), is(""));
|
68
136
|
assertThat(record.getMultiLineTextFieldValue("STRING"), is(""));
|
69
|
-
assertThat(record.
|
137
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), is(""));
|
138
|
+
assertThat(record.getNumberFieldValue("STRING|NUMBER"), is(number("0")));
|
70
139
|
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list()));
|
140
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), is(""));
|
141
|
+
assertThat(record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list()));
|
71
142
|
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), is(""));
|
143
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), is(date("1970-01-01")));
|
144
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), is(date("1970-01-01")));
|
145
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), is(date("1969-12-31")));
|
146
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), is(time("00:00:00")));
|
147
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), is(time("09:00:00")));
|
148
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), is(time("16:00:00")));
|
149
|
+
assertThat(
|
150
|
+
record.getDateTimeFieldValue("STRING|DATETIME"),
|
151
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
72
152
|
assertThat(record.getLinkFieldValue("STRING|LINK"), is(""));
|
73
|
-
assertThat(record.
|
153
|
+
assertThat(record.getSubtableFieldValue("STRING|SUBTABLE"), is(list()));
|
154
|
+
assertThat(
|
155
|
+
record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"),
|
156
|
+
is("1970-01-01T00:00:00Z"));
|
157
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), is(number("0")));
|
74
158
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), is(date("1970-01-01")));
|
75
159
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), is(date("1970-01-01")));
|
76
160
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), is(date("1969-12-31")));
|
161
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), is(time("00:00:00")));
|
162
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), is(time("09:00:00")));
|
163
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), is(time("16:00:00")));
|
77
164
|
assertThat(
|
78
165
|
record.getDateTimeFieldValue("TIMESTAMP"), is(dateTime("1970-01-01T00:00:00Z")));
|
79
|
-
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is(""));
|
80
|
-
assertThat(record.getMultiLineTextFieldValue("JSON"), is(""));
|
166
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("\"\""));
|
167
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), is("\"\""));
|
168
|
+
assertThat(record.getSubtableFieldValue("JSON|SUBTABLE"), is(list()));
|
169
|
+
assertThat(
|
170
|
+
record.getSingleLineTextFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), is("\"\""));
|
81
171
|
assertThat(updateKey.getField(), is("STRING|SINGLE_LINE_TEXT"));
|
82
172
|
assertThat(updateKey.getValue(), is(""));
|
83
173
|
});
|
84
174
|
verifier.verify(
|
85
175
|
(record, updateKey) -> {
|
86
176
|
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), is("true"));
|
87
|
-
assertThat(record.getNumberFieldValue("BOOLEAN"),
|
177
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), is(number("1")));
|
88
178
|
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is("123"));
|
89
179
|
assertThat(record.getNumberFieldValue("LONG"), is(number("123")));
|
180
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), is(date("1999-12-31")));
|
181
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), is(date("2000-01-01")));
|
182
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), is(date("1999-12-31")));
|
183
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), is(time("23:59:59")));
|
184
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), is(time("08:59:59")));
|
185
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), is(time("15:59:59")));
|
186
|
+
assertThat(
|
187
|
+
record.getDateTimeFieldValue("LONG|DATETIME"), is(dateTime("1999-12-31T23:59:59Z")));
|
90
188
|
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), is("123.0"));
|
91
189
|
assertThat(record.getNumberFieldValue("DOUBLE"), is(number("123.0")));
|
190
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), is(date("1999-12-31")));
|
191
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), is(date("2000-01-01")));
|
192
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), is(date("1999-12-31")));
|
193
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), is(time("23:59:59")));
|
194
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), is(time("08:59:59")));
|
195
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), is(time("15:59:59")));
|
196
|
+
assertThat(
|
197
|
+
record.getDateTimeFieldValue("DOUBLE|DATETIME"),
|
198
|
+
is(dateTime("1999-12-31T23:59:59Z")));
|
92
199
|
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), is("abc"));
|
93
200
|
assertThat(record.getMultiLineTextFieldValue("STRING"), is("abc"));
|
201
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), is("abc"));
|
94
202
|
assertThat(record.getNumberFieldValue("STRING|NUMBER"), is(number("123")));
|
95
203
|
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list("123", "abc")));
|
204
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), is("abc"));
|
205
|
+
assertThat(
|
206
|
+
record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list("123", "abc")));
|
96
207
|
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), is("abc"));
|
208
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), is(date("1999-12-31")));
|
209
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), is(date("1999-12-31")));
|
210
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), is(date("1999-12-30")));
|
211
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), is(time("23:59:59")));
|
212
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), is(time("08:59:59")));
|
213
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), is(time("15:59:59")));
|
214
|
+
assertThat(
|
215
|
+
record.getDateTimeFieldValue("STRING|DATETIME"),
|
216
|
+
is(dateTime("1999-12-31T23:59:59Z")));
|
97
217
|
assertThat(record.getLinkFieldValue("STRING|LINK"), is("abc"));
|
98
|
-
|
218
|
+
assertTableRows(record.getSubtableFieldValue("STRING|SUBTABLE"), rows(0L, 1L, 2L));
|
219
|
+
assertThat(
|
220
|
+
record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"),
|
221
|
+
is("1999-12-31T23:59:59Z"));
|
222
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), is(number("946684799")));
|
99
223
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), is(date("1999-12-31")));
|
100
224
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), is(date("2000-01-01")));
|
101
225
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), is(date("1999-12-31")));
|
226
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), is(time("23:59:59")));
|
227
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), is(time("08:59:59")));
|
228
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), is(time("15:59:59")));
|
102
229
|
assertThat(
|
103
230
|
record.getDateTimeFieldValue("TIMESTAMP"), is(dateTime("1999-12-31T23:59:59Z")));
|
104
|
-
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("abc"));
|
105
|
-
assertThat(record.getMultiLineTextFieldValue("JSON"), is("abc"));
|
231
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("\"abc\""));
|
232
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), is("\"abc\""));
|
233
|
+
assertTableRows(record.getSubtableFieldValue("JSON|SUBTABLE"), rows(0L, 1L, 2L));
|
234
|
+
assertThat(
|
235
|
+
record.getSingleLineTextFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), is("\"abc\""));
|
106
236
|
assertThat(updateKey.getField(), is("STRING|SINGLE_LINE_TEXT"));
|
107
237
|
assertThat(updateKey.getValue(), is("abc"));
|
108
238
|
});
|
109
239
|
verifier.verify(
|
110
240
|
(record, updateKey) -> {
|
111
241
|
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), is("false"));
|
112
|
-
assertThat(record.getNumberFieldValue("BOOLEAN"),
|
242
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), is(number("0")));
|
113
243
|
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is("456"));
|
114
244
|
assertThat(record.getNumberFieldValue("LONG"), is(number("456")));
|
245
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), is(date("2000-01-01")));
|
246
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), is(date("2000-01-01")));
|
247
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), is(date("1999-12-31")));
|
248
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), is(time("00:00:00")));
|
249
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), is(time("09:00:00")));
|
250
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), is(time("16:00:00")));
|
251
|
+
assertThat(
|
252
|
+
record.getDateTimeFieldValue("LONG|DATETIME"), is(dateTime("2000-01-01T00:00:00Z")));
|
115
253
|
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), is("456.0"));
|
116
254
|
assertThat(record.getNumberFieldValue("DOUBLE"), is(number("456.0")));
|
255
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), is(date("2000-01-01")));
|
256
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), is(date("2000-01-01")));
|
257
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), is(date("1999-12-31")));
|
258
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), is(time("00:00:00")));
|
259
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), is(time("09:00:00")));
|
260
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), is(time("16:00:00")));
|
261
|
+
assertThat(
|
262
|
+
record.getDateTimeFieldValue("DOUBLE|DATETIME"),
|
263
|
+
is(dateTime("2000-01-01T00:00:00Z")));
|
117
264
|
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), is("def"));
|
118
265
|
assertThat(record.getMultiLineTextFieldValue("STRING"), is("def"));
|
266
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), is("def"));
|
119
267
|
assertThat(record.getNumberFieldValue("STRING|NUMBER"), is(number("456")));
|
120
268
|
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list("456", "def")));
|
269
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), is("def"));
|
270
|
+
assertThat(
|
271
|
+
record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list("456", "def")));
|
121
272
|
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), is("def"));
|
273
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), is(date("2000-01-01")));
|
274
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), is(date("2000-01-01")));
|
275
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), is(date("1999-12-31")));
|
276
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), is(time("00:00:00")));
|
277
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), is(time("09:00:00")));
|
278
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), is(time("16:00:00")));
|
279
|
+
assertThat(
|
280
|
+
record.getDateTimeFieldValue("STRING|DATETIME"),
|
281
|
+
is(dateTime("2000-01-01T00:00:00Z")));
|
122
282
|
assertThat(record.getLinkFieldValue("STRING|LINK"), is("def"));
|
123
|
-
|
283
|
+
assertTableRows(record.getSubtableFieldValue("STRING|SUBTABLE"), rows(3L, 4L, 5L));
|
284
|
+
assertThat(
|
285
|
+
record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"),
|
286
|
+
is("2000-01-01T00:00:00Z"));
|
287
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), is(number("946684800")));
|
124
288
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), is(date("2000-01-01")));
|
125
289
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), is(date("2000-01-01")));
|
126
290
|
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), is(date("1999-12-31")));
|
291
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), is(time("00:00:00")));
|
292
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), is(time("09:00:00")));
|
293
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), is(time("16:00:00")));
|
127
294
|
assertThat(
|
128
295
|
record.getDateTimeFieldValue("TIMESTAMP"), is(dateTime("2000-01-01T00:00:00Z")));
|
129
|
-
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("def"));
|
130
|
-
assertThat(record.getMultiLineTextFieldValue("JSON"), is("def"));
|
296
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("\"def\""));
|
297
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), is("\"def\""));
|
298
|
+
assertTableRows(record.getSubtableFieldValue("JSON|SUBTABLE"), rows(3L, 4L, 5L));
|
299
|
+
assertThat(
|
300
|
+
record.getSingleLineTextFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), is("\"def\""));
|
131
301
|
assertThat(updateKey.getField(), is("STRING|SINGLE_LINE_TEXT"));
|
132
302
|
assertThat(updateKey.getValue(), is("def"));
|
133
303
|
});
|
134
304
|
}
|
135
305
|
|
306
|
+
@Test
|
307
|
+
public void testPreferNulls() {
|
308
|
+
KintoneColumnVisitorVerifier verifier = verifier(null, "LONG", true, false);
|
309
|
+
verifier.verify(
|
310
|
+
(record, updateKey) -> {
|
311
|
+
assertThat(
|
312
|
+
record.getFieldType("BOOLEAN|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
313
|
+
assertThat(record.getFieldType("BOOLEAN"), is(FieldType.NUMBER));
|
314
|
+
assertThat(record.getFieldType("LONG|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
315
|
+
assertThat(record.getFieldType("LONG"), is(FieldType.NUMBER));
|
316
|
+
assertThat(record.getFieldType("LONG|DATE"), is(FieldType.DATE));
|
317
|
+
assertThat(record.getFieldType("LONG|DATE|JST"), is(FieldType.DATE));
|
318
|
+
assertThat(record.getFieldType("LONG|DATE|PST"), is(FieldType.DATE));
|
319
|
+
assertThat(record.getFieldType("LONG|TIME"), is(FieldType.TIME));
|
320
|
+
assertThat(record.getFieldType("LONG|TIME|JST"), is(FieldType.TIME));
|
321
|
+
assertThat(record.getFieldType("LONG|TIME|PST"), is(FieldType.TIME));
|
322
|
+
assertThat(record.getFieldType("LONG|DATETIME"), is(FieldType.DATETIME));
|
323
|
+
assertThat(
|
324
|
+
record.getFieldType("DOUBLE|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
325
|
+
assertThat(record.getFieldType("DOUBLE"), is(FieldType.NUMBER));
|
326
|
+
assertThat(record.getFieldType("DOUBLE|DATE"), is(FieldType.DATE));
|
327
|
+
assertThat(record.getFieldType("DOUBLE|DATE|JST"), is(FieldType.DATE));
|
328
|
+
assertThat(record.getFieldType("DOUBLE|DATE|PST"), is(FieldType.DATE));
|
329
|
+
assertThat(record.getFieldType("DOUBLE|TIME"), is(FieldType.TIME));
|
330
|
+
assertThat(record.getFieldType("DOUBLE|TIME|JST"), is(FieldType.TIME));
|
331
|
+
assertThat(record.getFieldType("DOUBLE|TIME|PST"), is(FieldType.TIME));
|
332
|
+
assertThat(record.getFieldType("DOUBLE|DATETIME"), is(FieldType.DATETIME));
|
333
|
+
assertThat(
|
334
|
+
record.getFieldType("STRING|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
335
|
+
assertThat(record.getFieldType("STRING"), is(FieldType.MULTI_LINE_TEXT));
|
336
|
+
assertThat(record.getFieldType("STRING|RICH_TEXT"), is(FieldType.RICH_TEXT));
|
337
|
+
assertThat(record.getFieldType("STRING|NUMBER"), is(FieldType.NUMBER));
|
338
|
+
assertThat(record.getFieldType("STRING|CHECK_BOX"), is(FieldType.CHECK_BOX));
|
339
|
+
assertThat(record.getFieldType("STRING|RADIO_BUTTON"), is(FieldType.RADIO_BUTTON));
|
340
|
+
assertThat(record.getFieldType("STRING|MULTI_SELECT"), is(FieldType.MULTI_SELECT));
|
341
|
+
assertThat(record.getFieldType("STRING|DROP_DOWN"), is(FieldType.DROP_DOWN));
|
342
|
+
assertThat(record.getFieldType("STRING|DATE"), is(FieldType.DATE));
|
343
|
+
assertThat(record.getFieldType("STRING|DATE|JST"), is(FieldType.DATE));
|
344
|
+
assertThat(record.getFieldType("STRING|DATE|PST"), is(FieldType.DATE));
|
345
|
+
assertThat(record.getFieldType("STRING|TIME"), is(FieldType.TIME));
|
346
|
+
assertThat(record.getFieldType("STRING|TIME|JST"), is(FieldType.TIME));
|
347
|
+
assertThat(record.getFieldType("STRING|TIME|PST"), is(FieldType.TIME));
|
348
|
+
assertThat(record.getFieldType("STRING|DATETIME"), is(FieldType.DATETIME));
|
349
|
+
assertThat(record.getFieldType("STRING|LINK"), is(FieldType.LINK));
|
350
|
+
assertThat(record.getFieldType("STRING|SUBTABLE"), is(FieldType.SUBTABLE));
|
351
|
+
assertThat(
|
352
|
+
record.getFieldType("TIMESTAMP|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
353
|
+
assertThat(record.getFieldType("TIMESTAMP|NUMBER"), is(FieldType.NUMBER));
|
354
|
+
assertThat(record.getFieldType("TIMESTAMP|DATE"), is(FieldType.DATE));
|
355
|
+
assertThat(record.getFieldType("TIMESTAMP|DATE|JST"), is(FieldType.DATE));
|
356
|
+
assertThat(record.getFieldType("TIMESTAMP|DATE|PST"), is(FieldType.DATE));
|
357
|
+
assertThat(record.getFieldType("TIMESTAMP|TIME"), is(FieldType.TIME));
|
358
|
+
assertThat(record.getFieldType("TIMESTAMP|TIME|JST"), is(FieldType.TIME));
|
359
|
+
assertThat(record.getFieldType("TIMESTAMP|TIME|PST"), is(FieldType.TIME));
|
360
|
+
assertThat(record.getFieldType("TIMESTAMP"), is(FieldType.DATETIME));
|
361
|
+
assertThat(record.getFieldType("JSON|SINGLE_LINE_TEXT"), is(FieldType.SINGLE_LINE_TEXT));
|
362
|
+
assertThat(record.getFieldType("JSON"), is(FieldType.MULTI_LINE_TEXT));
|
363
|
+
assertThat(record.getFieldType("JSON|SUBTABLE"), is(FieldType.SUBTABLE));
|
364
|
+
assertThat(
|
365
|
+
record.getFieldType("JSON|SUBTABLE.SINGLE_LINE_TEXT"),
|
366
|
+
is(FieldType.SINGLE_LINE_TEXT));
|
367
|
+
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), nullValue());
|
368
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), nullValue());
|
369
|
+
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), nullValue());
|
370
|
+
assertThat(record.getNumberFieldValue("LONG"), nullValue());
|
371
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), nullValue());
|
372
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), nullValue());
|
373
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), nullValue());
|
374
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), nullValue());
|
375
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), nullValue());
|
376
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), nullValue());
|
377
|
+
assertThat(record.getDateTimeFieldValue("LONG|DATETIME"), nullValue());
|
378
|
+
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), nullValue());
|
379
|
+
assertThat(record.getNumberFieldValue("DOUBLE"), nullValue());
|
380
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), nullValue());
|
381
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), nullValue());
|
382
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), nullValue());
|
383
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), nullValue());
|
384
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), nullValue());
|
385
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), nullValue());
|
386
|
+
assertThat(record.getDateTimeFieldValue("DOUBLE|DATETIME"), nullValue());
|
387
|
+
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), nullValue());
|
388
|
+
assertThat(record.getMultiLineTextFieldValue("STRING"), nullValue());
|
389
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), nullValue());
|
390
|
+
assertThat(record.getNumberFieldValue("STRING|NUMBER"), nullValue());
|
391
|
+
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list()));
|
392
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), nullValue());
|
393
|
+
assertThat(record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list()));
|
394
|
+
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), nullValue());
|
395
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), nullValue());
|
396
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), nullValue());
|
397
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), nullValue());
|
398
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), nullValue());
|
399
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), nullValue());
|
400
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), nullValue());
|
401
|
+
assertThat(record.getDateTimeFieldValue("STRING|DATETIME"), nullValue());
|
402
|
+
assertThat(record.getLinkFieldValue("STRING|LINK"), nullValue());
|
403
|
+
assertThat(record.getSubtableFieldValue("STRING|SUBTABLE"), is(list()));
|
404
|
+
assertThat(record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"), nullValue());
|
405
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), nullValue());
|
406
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), nullValue());
|
407
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), nullValue());
|
408
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), nullValue());
|
409
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), nullValue());
|
410
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), nullValue());
|
411
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), nullValue());
|
412
|
+
assertThat(record.getDateTimeFieldValue("TIMESTAMP"), nullValue());
|
413
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), nullValue());
|
414
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), nullValue());
|
415
|
+
assertThat(record.getSubtableFieldValue("JSON|SUBTABLE"), is(list()));
|
416
|
+
assertThat(
|
417
|
+
record.getSingleLineTextFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), nullValue());
|
418
|
+
assertThat(updateKey.getField(), is("LONG"));
|
419
|
+
assertThat(updateKey.getValue(), nullValue());
|
420
|
+
});
|
421
|
+
}
|
422
|
+
|
423
|
+
@Test
|
424
|
+
public void testIgnoreNulls() {
|
425
|
+
KintoneColumnVisitorVerifier verifier = verifier("JSON", "JSON", false, true);
|
426
|
+
verifier.verify(
|
427
|
+
(record, updateKey) -> {
|
428
|
+
assertThat(record.getFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), nullValue());
|
429
|
+
assertThat(record.getFieldValue("BOOLEAN"), nullValue());
|
430
|
+
assertThat(record.getFieldValue("LONG|SINGLE_LINE_TEXT"), nullValue());
|
431
|
+
assertThat(record.getFieldValue("LONG"), nullValue());
|
432
|
+
assertThat(record.getFieldValue("LONG|DATE"), nullValue());
|
433
|
+
assertThat(record.getFieldValue("LONG|DATE|JST"), nullValue());
|
434
|
+
assertThat(record.getFieldValue("LONG|DATE|PST"), nullValue());
|
435
|
+
assertThat(record.getFieldValue("LONG|TIME"), nullValue());
|
436
|
+
assertThat(record.getFieldValue("LONG|TIME|JST"), nullValue());
|
437
|
+
assertThat(record.getFieldValue("LONG|TIME|PST"), nullValue());
|
438
|
+
assertThat(record.getFieldValue("LONG|DATETIME"), nullValue());
|
439
|
+
assertThat(record.getFieldValue("DOUBLE|SINGLE_LINE_TEXT"), nullValue());
|
440
|
+
assertThat(record.getFieldValue("DOUBLE"), nullValue());
|
441
|
+
assertThat(record.getFieldValue("DOUBLE|DATE"), nullValue());
|
442
|
+
assertThat(record.getFieldValue("DOUBLE|DATE|JST"), nullValue());
|
443
|
+
assertThat(record.getFieldValue("DOUBLE|DATE|PST"), nullValue());
|
444
|
+
assertThat(record.getFieldValue("DOUBLE|TIME"), nullValue());
|
445
|
+
assertThat(record.getFieldValue("DOUBLE|TIME|JST"), nullValue());
|
446
|
+
assertThat(record.getFieldValue("DOUBLE|TIME|PST"), nullValue());
|
447
|
+
assertThat(record.getFieldValue("DOUBLE|DATETIME"), nullValue());
|
448
|
+
assertThat(record.getFieldValue("STRING|SINGLE_LINE_TEXT"), nullValue());
|
449
|
+
assertThat(record.getFieldValue("STRING"), nullValue());
|
450
|
+
assertThat(record.getFieldValue("STRING|RICH_TEXT"), nullValue());
|
451
|
+
assertThat(record.getFieldValue("STRING|NUMBER"), nullValue());
|
452
|
+
assertThat(record.getFieldValue("STRING|CHECK_BOX"), nullValue());
|
453
|
+
assertThat(record.getFieldValue("STRING|RADIO_BUTTON"), nullValue());
|
454
|
+
assertThat(record.getFieldValue("STRING|MULTI_SELECT"), nullValue());
|
455
|
+
assertThat(record.getFieldValue("STRING|DROP_DOWN"), nullValue());
|
456
|
+
assertThat(record.getFieldValue("STRING|DATE"), nullValue());
|
457
|
+
assertThat(record.getFieldValue("STRING|DATE|JST"), nullValue());
|
458
|
+
assertThat(record.getFieldValue("STRING|DATE|PST"), nullValue());
|
459
|
+
assertThat(record.getFieldValue("STRING|TIME"), nullValue());
|
460
|
+
assertThat(record.getFieldValue("STRING|TIME|JST"), nullValue());
|
461
|
+
assertThat(record.getFieldValue("STRING|TIME|PST"), nullValue());
|
462
|
+
assertThat(record.getFieldValue("STRING|DATETIME"), nullValue());
|
463
|
+
assertThat(record.getFieldValue("STRING|LINK"), nullValue());
|
464
|
+
assertThat(record.getFieldValue("STRING|SUBTABLE"), nullValue());
|
465
|
+
assertThat(record.getFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"), nullValue());
|
466
|
+
assertThat(record.getFieldValue("TIMESTAMP|NUMBER"), nullValue());
|
467
|
+
assertThat(record.getFieldValue("TIMESTAMP|DATE"), nullValue());
|
468
|
+
assertThat(record.getFieldValue("TIMESTAMP|DATE|JST"), nullValue());
|
469
|
+
assertThat(record.getFieldValue("TIMESTAMP|DATE|PST"), nullValue());
|
470
|
+
assertThat(record.getFieldValue("TIMESTAMP|TIME"), nullValue());
|
471
|
+
assertThat(record.getFieldValue("TIMESTAMP|TIME|JST"), nullValue());
|
472
|
+
assertThat(record.getFieldValue("TIMESTAMP|TIME|PST"), nullValue());
|
473
|
+
assertThat(record.getFieldValue("TIMESTAMP"), nullValue());
|
474
|
+
assertThat(record.getFieldValue("JSON|SINGLE_LINE_TEXT"), nullValue());
|
475
|
+
assertThat(record.getFieldValue("JSON"), nullValue());
|
476
|
+
assertThat(record.getFieldValue("JSON|SUBTABLE"), nullValue());
|
477
|
+
assertThat(record.getFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), nullValue());
|
478
|
+
assertThat(updateKey.getField(), nullValue());
|
479
|
+
assertThat(updateKey.getValue(), nullValue());
|
480
|
+
},
|
481
|
+
true);
|
482
|
+
}
|
483
|
+
|
484
|
+
@Test
|
485
|
+
public void testReduceKey() {
|
486
|
+
KintoneColumnVisitorVerifier verifier = verifier("JSON|SUBTABLE", null);
|
487
|
+
verifier.verify(
|
488
|
+
(record, updateKey) -> {
|
489
|
+
assertThat(record.getSingleLineTextFieldValue("BOOLEAN|SINGLE_LINE_TEXT"), is("false"));
|
490
|
+
assertThat(record.getNumberFieldValue("BOOLEAN"), is(number("0")));
|
491
|
+
assertThat(record.getSingleLineTextFieldValue("LONG|SINGLE_LINE_TEXT"), is("0"));
|
492
|
+
assertThat(record.getNumberFieldValue("LONG"), is(number("0")));
|
493
|
+
assertThat(record.getDateFieldValue("LONG|DATE"), is(date("1970-01-01")));
|
494
|
+
assertThat(record.getDateFieldValue("LONG|DATE|JST"), is(date("1970-01-01")));
|
495
|
+
assertThat(record.getDateFieldValue("LONG|DATE|PST"), is(date("1969-12-31")));
|
496
|
+
assertThat(record.getTimeFieldValue("LONG|TIME"), is(time("00:00:00")));
|
497
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|JST"), is(time("09:00:00")));
|
498
|
+
assertThat(record.getTimeFieldValue("LONG|TIME|PST"), is(time("16:00:00")));
|
499
|
+
assertThat(
|
500
|
+
record.getDateTimeFieldValue("LONG|DATETIME"), is(dateTime("1970-01-01T00:00:00Z")));
|
501
|
+
assertThat(record.getSingleLineTextFieldValue("DOUBLE|SINGLE_LINE_TEXT"), is("0.0"));
|
502
|
+
assertThat(record.getNumberFieldValue("DOUBLE"), is(number("0.0")));
|
503
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE"), is(date("1970-01-01")));
|
504
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|JST"), is(date("1970-01-01")));
|
505
|
+
assertThat(record.getDateFieldValue("DOUBLE|DATE|PST"), is(date("1969-12-31")));
|
506
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME"), is(time("00:00:00")));
|
507
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|JST"), is(time("09:00:00")));
|
508
|
+
assertThat(record.getTimeFieldValue("DOUBLE|TIME|PST"), is(time("16:00:00")));
|
509
|
+
assertThat(
|
510
|
+
record.getDateTimeFieldValue("DOUBLE|DATETIME"),
|
511
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
512
|
+
assertThat(record.getSingleLineTextFieldValue("STRING|SINGLE_LINE_TEXT"), is(""));
|
513
|
+
assertThat(record.getMultiLineTextFieldValue("STRING"), is(""));
|
514
|
+
assertThat(record.getRichTextFieldValue("STRING|RICH_TEXT"), is(""));
|
515
|
+
assertThat(record.getNumberFieldValue("STRING|NUMBER"), is(number("0")));
|
516
|
+
assertThat(record.getCheckBoxFieldValue("STRING|CHECK_BOX"), is(list()));
|
517
|
+
assertThat(record.getRadioButtonFieldValue("STRING|RADIO_BUTTON"), is(""));
|
518
|
+
assertThat(record.getMultiSelectFieldValue("STRING|MULTI_SELECT"), is(list()));
|
519
|
+
assertThat(record.getDropDownFieldValue("STRING|DROP_DOWN"), is(""));
|
520
|
+
assertThat(record.getDateFieldValue("STRING|DATE"), is(date("1970-01-01")));
|
521
|
+
assertThat(record.getDateFieldValue("STRING|DATE|JST"), is(date("1970-01-01")));
|
522
|
+
assertThat(record.getDateFieldValue("STRING|DATE|PST"), is(date("1969-12-31")));
|
523
|
+
assertThat(record.getTimeFieldValue("STRING|TIME"), is(time("00:00:00")));
|
524
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|JST"), is(time("09:00:00")));
|
525
|
+
assertThat(record.getTimeFieldValue("STRING|TIME|PST"), is(time("16:00:00")));
|
526
|
+
assertThat(
|
527
|
+
record.getDateTimeFieldValue("STRING|DATETIME"),
|
528
|
+
is(dateTime("1970-01-01T00:00:00Z")));
|
529
|
+
assertThat(record.getLinkFieldValue("STRING|LINK"), is(""));
|
530
|
+
assertThat(record.getSubtableFieldValue("STRING|SUBTABLE"), is(list()));
|
531
|
+
assertThat(
|
532
|
+
record.getSingleLineTextFieldValue("TIMESTAMP|SINGLE_LINE_TEXT"),
|
533
|
+
is("1970-01-01T00:00:00Z"));
|
534
|
+
assertThat(record.getNumberFieldValue("TIMESTAMP|NUMBER"), is(number("0")));
|
535
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE"), is(date("1970-01-01")));
|
536
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|JST"), is(date("1970-01-01")));
|
537
|
+
assertThat(record.getDateFieldValue("TIMESTAMP|DATE|PST"), is(date("1969-12-31")));
|
538
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME"), is(time("00:00:00")));
|
539
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|JST"), is(time("09:00:00")));
|
540
|
+
assertThat(record.getTimeFieldValue("TIMESTAMP|TIME|PST"), is(time("16:00:00")));
|
541
|
+
assertThat(
|
542
|
+
record.getDateTimeFieldValue("TIMESTAMP"), is(dateTime("1970-01-01T00:00:00Z")));
|
543
|
+
assertThat(record.getSingleLineTextFieldValue("JSON|SINGLE_LINE_TEXT"), is("\"\""));
|
544
|
+
assertThat(record.getMultiLineTextFieldValue("JSON"), is("\"\""));
|
545
|
+
assertThat(record.getSubtableFieldValue("JSON|SUBTABLE"), is(list()));
|
546
|
+
assertThat(record.getFieldValue("JSON|SUBTABLE.SINGLE_LINE_TEXT"), nullValue());
|
547
|
+
assertThat(updateKey.getField(), nullValue());
|
548
|
+
assertThat(updateKey.getValue(), nullValue());
|
549
|
+
},
|
550
|
+
true);
|
551
|
+
}
|
552
|
+
|
553
|
+
@Test
|
554
|
+
public void testUpdateKey() {
|
555
|
+
assertThrows(UnsupportedOperationException.class, () -> verifier(null, "TIMESTAMP").verify());
|
556
|
+
KintoneColumnVisitorVerifier verifier = verifier(null, "TIMESTAMP|NUMBER");
|
557
|
+
verifier.verify(
|
558
|
+
(record, updateKey) -> {
|
559
|
+
assertThat(updateKey.getField(), is("TIMESTAMP|NUMBER"));
|
560
|
+
assertThat(updateKey.getValue(), is(number("0")));
|
561
|
+
});
|
562
|
+
verifier.verify(
|
563
|
+
(record, updateKey) -> {
|
564
|
+
assertThat(updateKey.getField(), is("TIMESTAMP|NUMBER"));
|
565
|
+
assertThat(updateKey.getValue(), is(number("0")));
|
566
|
+
});
|
567
|
+
verifier.verify(
|
568
|
+
(record, updateKey) -> {
|
569
|
+
assertThat(updateKey.getField(), is("TIMESTAMP|NUMBER"));
|
570
|
+
assertThat(updateKey.getValue(), is(number("946684799")));
|
571
|
+
});
|
572
|
+
verifier.verify(
|
573
|
+
(record, updateKey) -> {
|
574
|
+
assertThat(updateKey.getField(), is("TIMESTAMP|NUMBER"));
|
575
|
+
assertThat(updateKey.getValue(), is(number("946684800")));
|
576
|
+
});
|
577
|
+
}
|
578
|
+
|
579
|
+
private static KintoneColumnVisitorVerifier verifier(String reduceKeyName, String updateKeyName) {
|
580
|
+
Schema schema = build(Schema.builder());
|
581
|
+
return new KintoneColumnVisitorVerifier(
|
582
|
+
schema,
|
583
|
+
Collections.emptySet(),
|
584
|
+
build(ImmutableMap.builder()),
|
585
|
+
reduceKeyName,
|
586
|
+
updateKeyName,
|
587
|
+
OutputPageBuilder.build(schema, KintoneColumnVisitorTest::build));
|
588
|
+
}
|
589
|
+
|
590
|
+
private static KintoneColumnVisitorVerifier verifier(
|
591
|
+
String reduceKeyName, String updateKeyName, boolean preferNulls, boolean ignoreNulls) {
|
592
|
+
Schema schema = build(Schema.builder());
|
593
|
+
return new KintoneColumnVisitorVerifier(
|
594
|
+
schema,
|
595
|
+
Collections.emptySet(),
|
596
|
+
build(ImmutableMap.builder()),
|
597
|
+
preferNulls,
|
598
|
+
ignoreNulls,
|
599
|
+
reduceKeyName,
|
600
|
+
updateKeyName,
|
601
|
+
OutputPageBuilder.build(schema, KintoneColumnVisitorTest::build));
|
602
|
+
}
|
603
|
+
|
136
604
|
private static Schema build(Schema.Builder builder) {
|
137
605
|
return builder
|
138
606
|
.add("BOOLEAN|SINGLE_LINE_TEXT", Types.BOOLEAN)
|
139
|
-
|
140
|
-
// .add("BOOLEAN", Types.BOOLEAN)
|
607
|
+
.add("BOOLEAN", Types.BOOLEAN)
|
141
608
|
.add("LONG|SINGLE_LINE_TEXT", Types.LONG)
|
142
609
|
.add("LONG", Types.LONG)
|
610
|
+
.add("LONG|DATE", Types.LONG)
|
611
|
+
.add("LONG|DATE|JST", Types.LONG)
|
612
|
+
.add("LONG|DATE|PST", Types.LONG)
|
613
|
+
.add("LONG|TIME", Types.LONG)
|
614
|
+
.add("LONG|TIME|JST", Types.LONG)
|
615
|
+
.add("LONG|TIME|PST", Types.LONG)
|
616
|
+
.add("LONG|DATETIME", Types.LONG)
|
143
617
|
.add("DOUBLE|SINGLE_LINE_TEXT", Types.DOUBLE)
|
144
618
|
.add("DOUBLE", Types.DOUBLE)
|
619
|
+
.add("DOUBLE|DATE", Types.DOUBLE)
|
620
|
+
.add("DOUBLE|DATE|JST", Types.DOUBLE)
|
621
|
+
.add("DOUBLE|DATE|PST", Types.DOUBLE)
|
622
|
+
.add("DOUBLE|TIME", Types.DOUBLE)
|
623
|
+
.add("DOUBLE|TIME|JST", Types.DOUBLE)
|
624
|
+
.add("DOUBLE|TIME|PST", Types.DOUBLE)
|
625
|
+
.add("DOUBLE|DATETIME", Types.DOUBLE)
|
145
626
|
.add("STRING|SINGLE_LINE_TEXT", Types.STRING)
|
146
627
|
.add("STRING", Types.STRING)
|
628
|
+
.add("STRING|RICH_TEXT", Types.STRING)
|
147
629
|
.add("STRING|NUMBER", Types.STRING)
|
148
630
|
.add("STRING|CHECK_BOX", Types.STRING)
|
631
|
+
.add("STRING|RADIO_BUTTON", Types.STRING)
|
632
|
+
.add("STRING|MULTI_SELECT", Types.STRING)
|
149
633
|
.add("STRING|DROP_DOWN", Types.STRING)
|
634
|
+
.add("STRING|DATE", Types.STRING)
|
635
|
+
.add("STRING|DATE|JST", Types.STRING)
|
636
|
+
.add("STRING|DATE|PST", Types.STRING)
|
637
|
+
.add("STRING|TIME", Types.STRING)
|
638
|
+
.add("STRING|TIME|JST", Types.STRING)
|
639
|
+
.add("STRING|TIME|PST", Types.STRING)
|
640
|
+
.add("STRING|DATETIME", Types.STRING)
|
150
641
|
.add("STRING|LINK", Types.STRING)
|
642
|
+
.add("STRING|SUBTABLE", Types.STRING)
|
151
643
|
.add("TIMESTAMP|SINGLE_LINE_TEXT", Types.TIMESTAMP)
|
644
|
+
.add("TIMESTAMP|NUMBER", Types.TIMESTAMP)
|
152
645
|
.add("TIMESTAMP|DATE", Types.TIMESTAMP)
|
153
646
|
.add("TIMESTAMP|DATE|JST", Types.TIMESTAMP)
|
154
647
|
.add("TIMESTAMP|DATE|PST", Types.TIMESTAMP)
|
648
|
+
.add("TIMESTAMP|TIME", Types.TIMESTAMP)
|
649
|
+
.add("TIMESTAMP|TIME|JST", Types.TIMESTAMP)
|
650
|
+
.add("TIMESTAMP|TIME|PST", Types.TIMESTAMP)
|
155
651
|
.add("TIMESTAMP", Types.TIMESTAMP)
|
156
652
|
.add("JSON|SINGLE_LINE_TEXT", Types.JSON)
|
157
653
|
.add("JSON", Types.JSON)
|
654
|
+
.add("JSON|SUBTABLE", Types.JSON)
|
655
|
+
.add("JSON|SUBTABLE.SINGLE_LINE_TEXT", Types.JSON)
|
158
656
|
.build();
|
159
657
|
}
|
160
658
|
|
@@ -165,21 +663,52 @@ public class KintoneColumnVisitorTest {
|
|
165
663
|
.put(build("BOOLEAN", it -> it.setType("NUMBER")))
|
166
664
|
.put(build("LONG|SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
167
665
|
.put(build("LONG", it -> it.setType("NUMBER")))
|
666
|
+
.put(build("LONG|DATE", it -> it.setType("DATE").setTimezone("UTC")))
|
667
|
+
.put(build("LONG|DATE|JST", it -> it.setType("DATE").setTimezone("Asia/Tokyo")))
|
668
|
+
.put(build("LONG|DATE|PST", it -> it.setType("DATE").setTimezone("US/Pacific")))
|
669
|
+
.put(build("LONG|TIME", it -> it.setType("TIME").setTimezone("UTC")))
|
670
|
+
.put(build("LONG|TIME|JST", it -> it.setType("TIME").setTimezone("Asia/Tokyo")))
|
671
|
+
.put(build("LONG|TIME|PST", it -> it.setType("TIME").setTimezone("US/Pacific")))
|
672
|
+
.put(build("LONG|DATETIME", it -> it.setType("DATETIME")))
|
168
673
|
.put(build("DOUBLE|SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
169
674
|
.put(build("DOUBLE", it -> it.setType("NUMBER")))
|
675
|
+
.put(build("DOUBLE|DATE", it -> it.setType("DATE").setTimezone("UTC")))
|
676
|
+
.put(build("DOUBLE|DATE|JST", it -> it.setType("DATE").setTimezone("Asia/Tokyo")))
|
677
|
+
.put(build("DOUBLE|DATE|PST", it -> it.setType("DATE").setTimezone("US/Pacific")))
|
678
|
+
.put(build("DOUBLE|TIME", it -> it.setType("TIME").setTimezone("UTC")))
|
679
|
+
.put(build("DOUBLE|TIME|JST", it -> it.setType("TIME").setTimezone("Asia/Tokyo")))
|
680
|
+
.put(build("DOUBLE|TIME|PST", it -> it.setType("TIME").setTimezone("US/Pacific")))
|
681
|
+
.put(build("DOUBLE|DATETIME", it -> it.setType("DATETIME")))
|
170
682
|
.put(build("STRING|SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
171
683
|
.put(build("STRING", it -> it.setType("MULTI_LINE_TEXT")))
|
684
|
+
.put(build("STRING|RICH_TEXT", it -> it.setType("RICH_TEXT")))
|
172
685
|
.put(build("STRING|NUMBER", it -> it.setType("NUMBER")))
|
173
686
|
.put(build("STRING|CHECK_BOX", it -> it.setType("CHECK_BOX").setValueSeparator(",")))
|
687
|
+
.put(build("STRING|RADIO_BUTTON", it -> it.setType("RADIO_BUTTON")))
|
688
|
+
.put(build("STRING|MULTI_SELECT", it -> it.setType("MULTI_SELECT").setValueSeparator(",")))
|
174
689
|
.put(build("STRING|DROP_DOWN", it -> it.setType("DROP_DOWN")))
|
690
|
+
.put(build("STRING|DATE", it -> it.setType("DATE").setTimezone("UTC")))
|
691
|
+
.put(build("STRING|DATE|JST", it -> it.setType("DATE").setTimezone("Asia/Tokyo")))
|
692
|
+
.put(build("STRING|DATE|PST", it -> it.setType("DATE").setTimezone("US/Pacific")))
|
693
|
+
.put(build("STRING|TIME", it -> it.setType("TIME").setTimezone("UTC")))
|
694
|
+
.put(build("STRING|TIME|JST", it -> it.setType("TIME").setTimezone("Asia/Tokyo")))
|
695
|
+
.put(build("STRING|TIME|PST", it -> it.setType("TIME").setTimezone("US/Pacific")))
|
696
|
+
.put(build("STRING|DATETIME", it -> it.setType("DATETIME")))
|
175
697
|
.put(build("STRING|LINK", it -> it.setType("LINK")))
|
698
|
+
.put(build("STRING|SUBTABLE", it -> it.setType("SUBTABLE")))
|
176
699
|
.put(build("TIMESTAMP|SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
700
|
+
.put(build("TIMESTAMP|NUMBER", it -> it.setType("NUMBER")))
|
177
701
|
.put(build("TIMESTAMP|DATE", it -> it.setType("DATE").setTimezone("UTC")))
|
178
702
|
.put(build("TIMESTAMP|DATE|JST", it -> it.setType("DATE").setTimezone("Asia/Tokyo")))
|
179
703
|
.put(build("TIMESTAMP|DATE|PST", it -> it.setType("DATE").setTimezone("US/Pacific")))
|
704
|
+
.put(build("TIMESTAMP|TIME", it -> it.setType("TIME").setTimezone("UTC")))
|
705
|
+
.put(build("TIMESTAMP|TIME|JST", it -> it.setType("TIME").setTimezone("Asia/Tokyo")))
|
706
|
+
.put(build("TIMESTAMP|TIME|PST", it -> it.setType("TIME").setTimezone("US/Pacific")))
|
180
707
|
.put(build("TIMESTAMP", it -> it.setType("DATETIME")))
|
181
708
|
.put(build("JSON|SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
182
709
|
.put(build("JSON", it -> it.setType("MULTI_LINE_TEXT")))
|
710
|
+
.put(build("JSON|SUBTABLE", it -> it.setType("SUBTABLE")))
|
711
|
+
.put(build("JSON|SUBTABLE.SINGLE_LINE_TEXT", it -> it.setType("SINGLE_LINE_TEXT")))
|
183
712
|
.build();
|
184
713
|
}
|
185
714
|
|
@@ -192,106 +721,219 @@ public class KintoneColumnVisitorTest {
|
|
192
721
|
private static Page build(OutputPageBuilder builder) {
|
193
722
|
return builder
|
194
723
|
.setNull("BOOLEAN|SINGLE_LINE_TEXT")
|
195
|
-
|
724
|
+
.setNull("BOOLEAN")
|
196
725
|
.setNull("LONG|SINGLE_LINE_TEXT")
|
197
726
|
.setNull("LONG")
|
727
|
+
.setNull("LONG|DATE")
|
728
|
+
.setNull("LONG|DATE|JST")
|
729
|
+
.setNull("LONG|DATE|PST")
|
730
|
+
.setNull("LONG|TIME")
|
731
|
+
.setNull("LONG|TIME|JST")
|
732
|
+
.setNull("LONG|TIME|PST")
|
733
|
+
.setNull("LONG|DATETIME")
|
198
734
|
.setNull("DOUBLE|SINGLE_LINE_TEXT")
|
199
735
|
.setNull("DOUBLE")
|
736
|
+
.setNull("DOUBLE|DATE")
|
737
|
+
.setNull("DOUBLE|DATE|JST")
|
738
|
+
.setNull("DOUBLE|DATE|PST")
|
739
|
+
.setNull("DOUBLE|TIME")
|
740
|
+
.setNull("DOUBLE|TIME|JST")
|
741
|
+
.setNull("DOUBLE|TIME|PST")
|
742
|
+
.setNull("DOUBLE|DATETIME")
|
200
743
|
.setNull("STRING|SINGLE_LINE_TEXT")
|
201
744
|
.setNull("STRING")
|
745
|
+
.setNull("STRING|RICH_TEXT")
|
202
746
|
.setNull("STRING|NUMBER")
|
203
747
|
.setNull("STRING|CHECK_BOX")
|
748
|
+
.setNull("STRING|RADIO_BUTTON")
|
749
|
+
.setNull("STRING|MULTI_SELECT")
|
204
750
|
.setNull("STRING|DROP_DOWN")
|
751
|
+
.setNull("STRING|DATE")
|
752
|
+
.setNull("STRING|DATE|JST")
|
753
|
+
.setNull("STRING|DATE|PST")
|
754
|
+
.setNull("STRING|TIME")
|
755
|
+
.setNull("STRING|TIME|JST")
|
756
|
+
.setNull("STRING|TIME|PST")
|
757
|
+
.setNull("STRING|DATETIME")
|
205
758
|
.setNull("STRING|LINK")
|
759
|
+
.setNull("STRING|SUBTABLE")
|
206
760
|
.setNull("TIMESTAMP|SINGLE_LINE_TEXT")
|
761
|
+
.setNull("TIMESTAMP|NUMBER")
|
207
762
|
.setNull("TIMESTAMP|DATE")
|
208
763
|
.setNull("TIMESTAMP|DATE|JST")
|
209
764
|
.setNull("TIMESTAMP|DATE|PST")
|
765
|
+
.setNull("TIMESTAMP|TIME")
|
766
|
+
.setNull("TIMESTAMP|TIME|JST")
|
767
|
+
.setNull("TIMESTAMP|TIME|PST")
|
210
768
|
.setNull("TIMESTAMP")
|
211
769
|
.setNull("JSON|SINGLE_LINE_TEXT")
|
212
770
|
.setNull("JSON")
|
771
|
+
.setNull("JSON|SUBTABLE")
|
772
|
+
.setNull("JSON|SUBTABLE.SINGLE_LINE_TEXT")
|
213
773
|
.addRecord()
|
214
774
|
.setBoolean("BOOLEAN|SINGLE_LINE_TEXT", false)
|
215
|
-
|
775
|
+
.setBoolean("BOOLEAN", false)
|
216
776
|
.setLong("LONG|SINGLE_LINE_TEXT", 0)
|
217
777
|
.setLong("LONG", 0)
|
778
|
+
.setLong("LONG|DATE", 0)
|
779
|
+
.setLong("LONG|DATE|JST", 0)
|
780
|
+
.setLong("LONG|DATE|PST", 0)
|
781
|
+
.setLong("LONG|TIME", 0)
|
782
|
+
.setLong("LONG|TIME|JST", 0)
|
783
|
+
.setLong("LONG|TIME|PST", 0)
|
784
|
+
.setLong("LONG|DATETIME", 0)
|
218
785
|
.setDouble("DOUBLE|SINGLE_LINE_TEXT", 0)
|
219
786
|
.setDouble("DOUBLE", 0)
|
787
|
+
.setDouble("DOUBLE|DATE", 0)
|
788
|
+
.setDouble("DOUBLE|DATE|JST", 0)
|
789
|
+
.setDouble("DOUBLE|DATE|PST", 0)
|
790
|
+
.setDouble("DOUBLE|TIME", 0)
|
791
|
+
.setDouble("DOUBLE|TIME|JST", 0)
|
792
|
+
.setDouble("DOUBLE|TIME|PST", 0)
|
793
|
+
.setDouble("DOUBLE|DATETIME", 0)
|
220
794
|
.setString("STRING|SINGLE_LINE_TEXT", "")
|
221
795
|
.setString("STRING", "")
|
796
|
+
.setString("STRING|RICH_TEXT", "")
|
222
797
|
.setString("STRING|NUMBER", "")
|
223
798
|
.setString("STRING|CHECK_BOX", "")
|
799
|
+
.setString("STRING|RADIO_BUTTON", "")
|
800
|
+
.setString("STRING|MULTI_SELECT", "")
|
224
801
|
.setString("STRING|DROP_DOWN", "")
|
802
|
+
.setString("STRING|DATE", "")
|
803
|
+
.setString("STRING|DATE|JST", "")
|
804
|
+
.setString("STRING|DATE|PST", "")
|
805
|
+
.setString("STRING|TIME", "")
|
806
|
+
.setString("STRING|TIME|JST", "")
|
807
|
+
.setString("STRING|TIME|PST", "")
|
808
|
+
.setString("STRING|DATETIME", "")
|
225
809
|
.setString("STRING|LINK", "")
|
810
|
+
.setString("STRING|SUBTABLE", "")
|
226
811
|
.setTimestamp("TIMESTAMP|SINGLE_LINE_TEXT", Timestamp.ofInstant(Instant.EPOCH))
|
812
|
+
.setTimestamp("TIMESTAMP|NUMBER", Timestamp.ofInstant(Instant.EPOCH))
|
227
813
|
.setTimestamp("TIMESTAMP|DATE", Timestamp.ofInstant(Instant.EPOCH))
|
228
814
|
.setTimestamp("TIMESTAMP|DATE|JST", Timestamp.ofInstant(Instant.EPOCH))
|
229
815
|
.setTimestamp("TIMESTAMP|DATE|PST", Timestamp.ofInstant(Instant.EPOCH))
|
816
|
+
.setTimestamp("TIMESTAMP|TIME", Timestamp.ofInstant(Instant.EPOCH))
|
817
|
+
.setTimestamp("TIMESTAMP|TIME|JST", Timestamp.ofInstant(Instant.EPOCH))
|
818
|
+
.setTimestamp("TIMESTAMP|TIME|PST", Timestamp.ofInstant(Instant.EPOCH))
|
230
819
|
.setTimestamp("TIMESTAMP", Timestamp.ofInstant(Instant.EPOCH))
|
231
820
|
.setJson("JSON|SINGLE_LINE_TEXT", ValueFactory.newString(""))
|
232
821
|
.setJson("JSON", ValueFactory.newString(""))
|
822
|
+
.setJson("JSON|SUBTABLE", ValueFactory.newString(""))
|
823
|
+
.setJson("JSON|SUBTABLE.SINGLE_LINE_TEXT", ValueFactory.newString(""))
|
233
824
|
.addRecord()
|
234
825
|
.setBoolean("BOOLEAN|SINGLE_LINE_TEXT", true)
|
235
|
-
|
826
|
+
.setBoolean("BOOLEAN", true)
|
236
827
|
.setLong("LONG|SINGLE_LINE_TEXT", 123)
|
237
828
|
.setLong("LONG", 123)
|
829
|
+
.setLong("LONG|DATE", 946684799)
|
830
|
+
.setLong("LONG|DATE|JST", 946684799)
|
831
|
+
.setLong("LONG|DATE|PST", 946684799)
|
832
|
+
.setLong("LONG|TIME", 946684799)
|
833
|
+
.setLong("LONG|TIME|JST", 946684799)
|
834
|
+
.setLong("LONG|TIME|PST", 946684799)
|
835
|
+
.setLong("LONG|DATETIME", 946684799)
|
238
836
|
.setDouble("DOUBLE|SINGLE_LINE_TEXT", 123)
|
239
837
|
.setDouble("DOUBLE", 123)
|
838
|
+
.setDouble("DOUBLE|DATE", 946684799)
|
839
|
+
.setDouble("DOUBLE|DATE|JST", 946684799)
|
840
|
+
.setDouble("DOUBLE|DATE|PST", 946684799)
|
841
|
+
.setDouble("DOUBLE|TIME", 946684799)
|
842
|
+
.setDouble("DOUBLE|TIME|JST", 946684799)
|
843
|
+
.setDouble("DOUBLE|TIME|PST", 946684799)
|
844
|
+
.setDouble("DOUBLE|DATETIME", 946684799)
|
240
845
|
.setString("STRING|SINGLE_LINE_TEXT", "abc")
|
241
846
|
.setString("STRING", "abc")
|
847
|
+
.setString("STRING|RICH_TEXT", "abc")
|
242
848
|
.setString("STRING|NUMBER", "123")
|
243
849
|
.setString("STRING|CHECK_BOX", "123,abc")
|
850
|
+
.setString("STRING|RADIO_BUTTON", "abc")
|
851
|
+
.setString("STRING|MULTI_SELECT", "123,abc")
|
244
852
|
.setString("STRING|DROP_DOWN", "abc")
|
853
|
+
.setString("STRING|DATE", "1999-12-31")
|
854
|
+
.setString("STRING|DATE|JST", "1999-12-31")
|
855
|
+
.setString("STRING|DATE|PST", "1999-12-31")
|
856
|
+
.setString("STRING|TIME", "23:59:59")
|
857
|
+
.setString("STRING|TIME|JST", "23:59:59")
|
858
|
+
.setString("STRING|TIME|PST", "23:59:59")
|
859
|
+
.setString("STRING|DATETIME", "1999-12-31T23:59:59Z")
|
245
860
|
.setString("STRING|LINK", "abc")
|
861
|
+
.setString("STRING|SUBTABLE", String.format("[%s,%s,%s]", ROWS[0], ROWS[1], ROWS[2]))
|
246
862
|
.setTimestamp("TIMESTAMP|SINGLE_LINE_TEXT", timestamp("1999-12-31T23:59:59Z"))
|
863
|
+
.setTimestamp("TIMESTAMP|NUMBER", timestamp("1999-12-31T23:59:59Z"))
|
247
864
|
.setTimestamp("TIMESTAMP|DATE", timestamp("1999-12-31T23:59:59Z"))
|
248
865
|
.setTimestamp("TIMESTAMP|DATE|JST", timestamp("1999-12-31T23:59:59Z"))
|
249
866
|
.setTimestamp("TIMESTAMP|DATE|PST", timestamp("1999-12-31T23:59:59Z"))
|
867
|
+
.setTimestamp("TIMESTAMP|TIME", timestamp("1999-12-31T23:59:59Z"))
|
868
|
+
.setTimestamp("TIMESTAMP|TIME|JST", timestamp("1999-12-31T23:59:59Z"))
|
869
|
+
.setTimestamp("TIMESTAMP|TIME|PST", timestamp("1999-12-31T23:59:59Z"))
|
250
870
|
.setTimestamp("TIMESTAMP", timestamp("1999-12-31T23:59:59Z"))
|
251
871
|
.setJson("JSON|SINGLE_LINE_TEXT", ValueFactory.newString("abc"))
|
252
872
|
.setJson("JSON", ValueFactory.newString("abc"))
|
873
|
+
.setJson(
|
874
|
+
"JSON|SUBTABLE", ValueFactory.newArray(value(ROWS[0]), value(ROWS[1]), value(ROWS[2])))
|
875
|
+
.setJson("JSON|SUBTABLE.SINGLE_LINE_TEXT", ValueFactory.newString("abc"))
|
253
876
|
.addRecord()
|
254
877
|
.setBoolean("BOOLEAN|SINGLE_LINE_TEXT", false)
|
255
|
-
|
878
|
+
.setBoolean("BOOLEAN", false)
|
256
879
|
.setLong("LONG|SINGLE_LINE_TEXT", 456)
|
257
880
|
.setLong("LONG", 456)
|
881
|
+
.setLong("LONG|DATE", 946684800)
|
882
|
+
.setLong("LONG|DATE|JST", 946684800)
|
883
|
+
.setLong("LONG|DATE|PST", 946684800)
|
884
|
+
.setLong("LONG|TIME", 946684800)
|
885
|
+
.setLong("LONG|TIME|JST", 946684800)
|
886
|
+
.setLong("LONG|TIME|PST", 946684800)
|
887
|
+
.setLong("LONG|DATETIME", 946684800)
|
258
888
|
.setDouble("DOUBLE|SINGLE_LINE_TEXT", 456)
|
259
889
|
.setDouble("DOUBLE", 456)
|
890
|
+
.setDouble("DOUBLE|DATE", 946684800)
|
891
|
+
.setDouble("DOUBLE|DATE|JST", 946684800)
|
892
|
+
.setDouble("DOUBLE|DATE|PST", 946684800)
|
893
|
+
.setDouble("DOUBLE|TIME", 946684800)
|
894
|
+
.setDouble("DOUBLE|TIME|JST", 946684800)
|
895
|
+
.setDouble("DOUBLE|TIME|PST", 946684800)
|
896
|
+
.setDouble("DOUBLE|DATETIME", 946684800)
|
260
897
|
.setString("STRING|SINGLE_LINE_TEXT", "def")
|
261
898
|
.setString("STRING", "def")
|
899
|
+
.setString("STRING|RICH_TEXT", "def")
|
262
900
|
.setString("STRING|NUMBER", "456")
|
263
901
|
.setString("STRING|CHECK_BOX", "456,def")
|
902
|
+
.setString("STRING|RADIO_BUTTON", "def")
|
903
|
+
.setString("STRING|MULTI_SELECT", "456,def")
|
264
904
|
.setString("STRING|DROP_DOWN", "def")
|
905
|
+
.setString("STRING|DATE", "2000-01-01")
|
906
|
+
.setString("STRING|DATE|JST", "2000-01-01")
|
907
|
+
.setString("STRING|DATE|PST", "2000-01-01")
|
908
|
+
.setString("STRING|TIME", "00:00:00")
|
909
|
+
.setString("STRING|TIME|JST", "00:00:00")
|
910
|
+
.setString("STRING|TIME|PST", "00:00:00")
|
911
|
+
.setString("STRING|DATETIME", "2000-01-01T00:00:00Z")
|
265
912
|
.setString("STRING|LINK", "def")
|
913
|
+
.setString("STRING|SUBTABLE", String.format("[%s,%s,%s]", ROWS[3], ROWS[4], ROWS[5]))
|
266
914
|
.setTimestamp("TIMESTAMP|SINGLE_LINE_TEXT", timestamp("2000-01-01T00:00:00Z"))
|
915
|
+
.setTimestamp("TIMESTAMP|NUMBER", timestamp("2000-01-01T00:00:00Z"))
|
267
916
|
.setTimestamp("TIMESTAMP|DATE", timestamp("2000-01-01T00:00:00Z"))
|
268
917
|
.setTimestamp("TIMESTAMP|DATE|JST", timestamp("2000-01-01T00:00:00Z"))
|
269
918
|
.setTimestamp("TIMESTAMP|DATE|PST", timestamp("2000-01-01T00:00:00Z"))
|
919
|
+
.setTimestamp("TIMESTAMP|TIME", timestamp("2000-01-01T00:00:00Z"))
|
920
|
+
.setTimestamp("TIMESTAMP|TIME|JST", timestamp("2000-01-01T00:00:00Z"))
|
921
|
+
.setTimestamp("TIMESTAMP|TIME|PST", timestamp("2000-01-01T00:00:00Z"))
|
270
922
|
.setTimestamp("TIMESTAMP", timestamp("2000-01-01T00:00:00Z"))
|
271
923
|
.setJson("JSON|SINGLE_LINE_TEXT", ValueFactory.newString("def"))
|
272
924
|
.setJson("JSON", ValueFactory.newString("def"))
|
925
|
+
.setJson(
|
926
|
+
"JSON|SUBTABLE", ValueFactory.newArray(value(ROWS[3]), value(ROWS[4]), value(ROWS[5])))
|
927
|
+
.setJson("JSON|SUBTABLE.SINGLE_LINE_TEXT", ValueFactory.newString("def"))
|
273
928
|
.addRecord()
|
274
929
|
.build();
|
275
930
|
}
|
276
931
|
|
277
|
-
private static BigDecimal number(String value) {
|
278
|
-
return new BigDecimal(value);
|
279
|
-
}
|
280
|
-
|
281
|
-
@SafeVarargs
|
282
|
-
private static <T> List<T> list(T... a) {
|
283
|
-
return Arrays.asList(a);
|
284
|
-
}
|
285
|
-
|
286
|
-
private static LocalDate date(CharSequence text) {
|
287
|
-
return LocalDate.parse(text);
|
288
|
-
}
|
289
|
-
|
290
|
-
private static ZonedDateTime dateTime(CharSequence text) {
|
291
|
-
return ZonedDateTime.parse(text).withZoneSameInstant(ZoneId.of("UTC"));
|
292
|
-
}
|
293
|
-
|
294
932
|
private static Timestamp timestamp(CharSequence text) {
|
295
933
|
return Timestamp.ofInstant(Instant.parse(text));
|
296
934
|
}
|
935
|
+
|
936
|
+
private static Value value(String json) {
|
937
|
+
return PARSER.parse(json);
|
938
|
+
}
|
297
939
|
}
|