embulk-output-oracle 0.7.10 → 0.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +16 -0
- data/build.gradle +1 -1
- data/classpath/{embulk-output-jdbc-0.7.10.jar → embulk-output-jdbc-0.7.11.jar} +0 -0
- data/classpath/{embulk-output-oracle-0.7.10.jar → embulk-output-oracle-0.7.11.jar} +0 -0
- data/src/test/java/org/embulk/output/oracle/BasicTest.java +450 -0
- data/src/test/java/org/embulk/output/oracle/DummyFileSystem.java +96 -0
- data/src/test/java/org/embulk/output/oracle/DummyFileSystemProvider.java +154 -0
- data/src/test/java/org/embulk/output/oracle/DummyPath.java +188 -0
- data/src/test/java/org/embulk/output/oracle/OracleTests.java +90 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/setup.sql +54 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test1.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_expected.diff +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_create_expected.csv +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_direct.yml +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_large.yml +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_multibyte_table.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci.yml +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_large.yml +6 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_direct_oci_multibyte_table.yml +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_empty_expected.csv +1 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_expected.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_large_expected.csv +9999 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_insert_multibyte_table.yml +2 -0
- data/src/test/resources/{oracle/data/test3/test3.csv → org/embulk/output/oracle/test/expect/basic/test_large.csv} +3 -3
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_column_options.yml +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_lower_table.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.csv +6 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_expected.csv +6 -0
- data/src/test/resources/{oracle/data/test5/test5.csv → org/embulk/output/oracle/test/expect/basic/test_merge_keys.csv} +5 -4
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys.yml +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_keys_expected.csv +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.csv +6 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule.yml +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_merge_rule_expected.csv +6 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_column_options.yml +10 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_longname_multibyte.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_replace_oci.yml +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp.yml +5 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_string_timestamp_expected.csv +4 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert.yml +2 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_expected.csv +3 -0
- data/src/test/resources/org/embulk/output/oracle/test/expect/basic/test_truncate_insert_oci.yml +3 -0
- metadata +51 -36
- data/src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java +0 -185
- data/src/test/java/org/embulk/input/filesplit/PartialFile.java +0 -50
- data/src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java +0 -154
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +0 -887
- data/src/test/resources/oracle/data/test1/test1.csv +0 -3
- data/src/test/resources/oracle/data/test4/test4.csv +0 -5
- data/src/test/resources/oracle/yml/test-insert-direct-direct-method.yml +0 -27
- data/src/test/resources/oracle/yml/test-insert-direct-empty.yml +0 -26
- data/src/test/resources/oracle/yml/test-insert-direct-oci-method-large.yml +0 -29
- data/src/test/resources/oracle/yml/test-insert-direct-oci-method-multibyte.yml +0 -29
- data/src/test/resources/oracle/yml/test-insert-direct-oci-method-split.yml +0 -29
- data/src/test/resources/oracle/yml/test-insert-direct-oci-method.yml +0 -29
- data/src/test/resources/oracle/yml/test-insert-direct.yml +0 -26
- data/src/test/resources/oracle/yml/test-insert-empty.yml +0 -28
- data/src/test/resources/oracle/yml/test-insert.yml +0 -26
- data/src/test/resources/oracle/yml/test-lower-column-options.yml +0 -29
- data/src/test/resources/oracle/yml/test-lower-column.yml +0 -26
- data/src/test/resources/oracle/yml/test-lower-table.yml +0 -26
- data/src/test/resources/oracle/yml/test-merge-keys.yml +0 -23
- data/src/test/resources/oracle/yml/test-merge-rule.yml +0 -23
- data/src/test/resources/oracle/yml/test-merge.yml +0 -22
- data/src/test/resources/oracle/yml/test-replace-empty.yml +0 -33
- data/src/test/resources/oracle/yml/test-replace-long-name-multibyte.yml +0 -33
- data/src/test/resources/oracle/yml/test-replace-long-name.yml +0 -33
- data/src/test/resources/oracle/yml/test-replace-oci-method.yml +0 -34
- data/src/test/resources/oracle/yml/test-replace.yml +0 -33
- data/src/test/resources/oracle/yml/test-string-timestamp.yml +0 -29
- data/src/test/resources/oracle/yml/test-truncate-insert-oci-method.yml +0 -27
- data/src/test/resources/oracle/yml/test-truncate-insert.yml +0 -26
- data/src/test/resources/oracle/yml/test-url.yml +0 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f8e5d0ad31d9478be97baaea6f6f6dec4be9c61
|
|
4
|
+
data.tar.gz: d62385a9f54e20bbbe61d6ff8e02f34aa15720a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05324f21599955c3154101753cf5f6ae7d83c6c60a9e9c9ffaf29239d7663a27b8b5001efdb385744f85970ee0baa23f04c06907322865e4d3282712a091439d
|
|
7
|
+
data.tar.gz: 396820c0bfa04ac571e973bbf54949fd88a496652ace38219522da9cb8bfd22dff386ebc8b92b5353398fc0b55d6e1add2d9799e448fb98f7c0e51c20759ccd2
|
data/README.md
CHANGED
|
@@ -136,6 +136,22 @@ out:
|
|
|
136
136
|
$ ./gradlew gem
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
+
Running tests:
|
|
140
|
+
|
|
141
|
+
You need to put 'ojdbc7.jar' into 'embulk-output-oracle/driver' directory and create 'oracle.yml' as follows.
|
|
142
|
+
```
|
|
143
|
+
type: oracle
|
|
144
|
+
host: localhost
|
|
145
|
+
port: 1521
|
|
146
|
+
database: database
|
|
147
|
+
user: user
|
|
148
|
+
password: pass
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
$ EMBULK_OUTPUT_ORACLE_TEST_CONFIG=oracle.yml ./gradlew :embulk-output-oracle:check --info
|
|
153
|
+
```
|
|
154
|
+
|
|
139
155
|
#### Build environment for native library
|
|
140
156
|
|
|
141
157
|
For Windows (x64)
|
data/build.gradle
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
dependencies {
|
|
2
2
|
compile project(':embulk-output-jdbc')
|
|
3
3
|
|
|
4
|
-
testCompile 'org.embulk:embulk-standards:0.8.
|
|
4
|
+
testCompile 'org.embulk:embulk-standards:0.8.22'
|
|
5
5
|
testCompile project(':embulk-output-jdbc').sourceSets.test.output
|
|
6
6
|
testCompile files('driver/ojdbc7.jar')
|
|
7
7
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
package org.embulk.output.oracle;
|
|
2
|
+
|
|
3
|
+
import static org.embulk.output.oracle.OracleTests.execute;
|
|
4
|
+
import static org.embulk.output.oracle.OracleTests.selectRecords;
|
|
5
|
+
import static org.hamcrest.Matchers.is;
|
|
6
|
+
import static org.junit.Assert.assertThat;
|
|
7
|
+
import static org.junit.Assert.fail;
|
|
8
|
+
|
|
9
|
+
import java.io.File;
|
|
10
|
+
import java.io.IOException;
|
|
11
|
+
import java.net.URISyntaxException;
|
|
12
|
+
import java.net.URL;
|
|
13
|
+
import java.nio.file.FileSystems;
|
|
14
|
+
import java.nio.file.Path;
|
|
15
|
+
|
|
16
|
+
import org.embulk.config.ConfigDiff;
|
|
17
|
+
import org.embulk.config.ConfigSource;
|
|
18
|
+
import org.embulk.exec.PartialExecutionException;
|
|
19
|
+
import org.embulk.output.OracleOutputPlugin;
|
|
20
|
+
import org.embulk.spi.OutputPlugin;
|
|
21
|
+
import org.embulk.test.EmbulkTests;
|
|
22
|
+
import org.embulk.test.TestingEmbulk;
|
|
23
|
+
import org.junit.Before;
|
|
24
|
+
import org.junit.Rule;
|
|
25
|
+
import org.junit.Test;
|
|
26
|
+
|
|
27
|
+
import com.google.common.io.Resources;
|
|
28
|
+
|
|
29
|
+
public class BasicTest
|
|
30
|
+
{
|
|
31
|
+
private static final String BASIC_RESOURCE_PATH = "org/embulk/output/oracle/test/expect/basic/";
|
|
32
|
+
|
|
33
|
+
private static ConfigSource loadYamlResource(TestingEmbulk embulk, String fileName)
|
|
34
|
+
{
|
|
35
|
+
return embulk.loadYamlResource(BASIC_RESOURCE_PATH + fileName);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
private static String readResource(String fileName)
|
|
39
|
+
{
|
|
40
|
+
return EmbulkTests.readResource(BASIC_RESOURCE_PATH + fileName);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Rule
|
|
44
|
+
public TestingEmbulk embulk = TestingEmbulk.builder()
|
|
45
|
+
.registerPlugin(OutputPlugin.class, "oracle", OracleOutputPlugin.class)
|
|
46
|
+
.build();
|
|
47
|
+
|
|
48
|
+
private ConfigSource baseConfig;
|
|
49
|
+
|
|
50
|
+
@Before
|
|
51
|
+
public void setup() throws IOException
|
|
52
|
+
{
|
|
53
|
+
baseConfig = OracleTests.baseConfig();
|
|
54
|
+
execute(embulk, readResource("setup.sql")); // setup rows
|
|
55
|
+
|
|
56
|
+
if (System.getProperty("path.separator").equals(";")) {
|
|
57
|
+
// for Windows (because encoding will be set to UTF8 when executed by Eclipse)
|
|
58
|
+
System.setProperty("file.encoding", "MS932");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Test
|
|
63
|
+
public void testInsert() throws Exception
|
|
64
|
+
{
|
|
65
|
+
Path in1 = toPath("test1.csv");
|
|
66
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert.yml")), in1);
|
|
67
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
68
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@Test
|
|
72
|
+
public void testInsertCreate() throws Exception
|
|
73
|
+
{
|
|
74
|
+
execute(embulk, "DROP TABLE TEST1;" + System.lineSeparator() + "EXIT;");
|
|
75
|
+
|
|
76
|
+
Path in1 = toPath("test1.csv");
|
|
77
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert.yml")), in1);
|
|
78
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
79
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@Test
|
|
83
|
+
public void testInsertMultibyteTable() throws Exception
|
|
84
|
+
{
|
|
85
|
+
Path in1 = toPath("test1.csv");
|
|
86
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_multibyte_table.yml")), in1);
|
|
87
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
88
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Test
|
|
92
|
+
public void testInsertEmpty() throws Exception
|
|
93
|
+
{
|
|
94
|
+
Path in1 = getEmptyDir();
|
|
95
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert.yml")), in1);
|
|
96
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_empty_expected.csv")));
|
|
97
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@Test
|
|
101
|
+
public void testInsertDirect() throws Exception
|
|
102
|
+
{
|
|
103
|
+
Path in1 = toPath("test1.csv");
|
|
104
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct.yml")), in1);
|
|
105
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
106
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// insert_method: direct
|
|
110
|
+
@Test
|
|
111
|
+
public void testInsertDirectDirect() throws Exception
|
|
112
|
+
{
|
|
113
|
+
Path in1 = toPath("test1.csv");
|
|
114
|
+
try {
|
|
115
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_direct.yml")), in1);
|
|
116
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
117
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
118
|
+
|
|
119
|
+
} catch (PartialExecutionException e) {
|
|
120
|
+
if (e.getCause() != null && e.getCause().getClass().equals(RuntimeException.class)
|
|
121
|
+
&& e.getCause().getCause() != null && e.getCause().getCause().getClass().equals(AssertionError.class)) {
|
|
122
|
+
// ignore error
|
|
123
|
+
e.printStackTrace();
|
|
124
|
+
System.err.println("For some reason, the 'direct' mode doesn't work in gradle test task...");
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
throw e;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@Test
|
|
132
|
+
public void testInsertDirectOCI() throws Exception
|
|
133
|
+
{
|
|
134
|
+
Path in1 = toPath("test1.csv");
|
|
135
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_oci.yml")), in1);
|
|
136
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
137
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@Test
|
|
141
|
+
public void testInsertDirectCreate() throws Exception
|
|
142
|
+
{
|
|
143
|
+
execute(embulk, "DROP TABLE TEST1;" + System.lineSeparator() + "EXIT;");
|
|
144
|
+
|
|
145
|
+
Path in1 = toPath("test1.csv");
|
|
146
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct.yml")), in1);
|
|
147
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
148
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@Test
|
|
152
|
+
public void testInsertDirectMultibyteTable() throws Exception
|
|
153
|
+
{
|
|
154
|
+
Path in1 = toPath("test1.csv");
|
|
155
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_multibyte_table.yml")), in1);
|
|
156
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
157
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
@Test
|
|
161
|
+
public void testInsertDirectOCIMultibyteTable() throws Exception
|
|
162
|
+
{
|
|
163
|
+
Path in1 = toPath("test1.csv");
|
|
164
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_oci_multibyte_table.yml")), in1);
|
|
165
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
166
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@Test
|
|
170
|
+
public void testInsertDirectDuplicate() throws Exception
|
|
171
|
+
{
|
|
172
|
+
execute(embulk, "INSERT INTO TEST1(ID) VALUES('A002');" + System.lineSeparator() + "EXIT;");
|
|
173
|
+
|
|
174
|
+
Path in1 = toPath("test1.csv");
|
|
175
|
+
try {
|
|
176
|
+
embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct.yml")), in1);
|
|
177
|
+
fail("Exception expected.");
|
|
178
|
+
} catch (Exception e) {
|
|
179
|
+
System.out.println(e);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@Test
|
|
184
|
+
public void testInsertDirectOCIDuplicate() throws Exception
|
|
185
|
+
{
|
|
186
|
+
execute(embulk, "INSERT INTO TEST1(ID) VALUES('A002');" + System.lineSeparator() + "EXIT;");
|
|
187
|
+
|
|
188
|
+
Path in1 = toPath("test1.csv");
|
|
189
|
+
try {
|
|
190
|
+
embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_oci.yml")), in1);
|
|
191
|
+
fail("Exception expected.");
|
|
192
|
+
} catch (Exception e) {
|
|
193
|
+
System.out.println(e);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
@Test
|
|
198
|
+
public void testInsertDirectOCIMultibyteTableDuplicate() throws Exception
|
|
199
|
+
{
|
|
200
|
+
execute(embulk, "INSERT INTO TEST1(ID) VALUES('A002');" + System.lineSeparator() + "EXIT;");
|
|
201
|
+
|
|
202
|
+
Path in1 = toPath("test1.csv");
|
|
203
|
+
try {
|
|
204
|
+
embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_oci_multibyte_table.yml")), in1);
|
|
205
|
+
fail("Exception expected.");
|
|
206
|
+
} catch (Exception e) {
|
|
207
|
+
System.out.println(e);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Multiple output tasks will be executed.
|
|
212
|
+
@Test
|
|
213
|
+
public void testInsertDirectLarge() throws Exception
|
|
214
|
+
{
|
|
215
|
+
Path in1 = toPath("test_large.csv");
|
|
216
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_large.yml")), in1);
|
|
217
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_large_expected.csv")));
|
|
218
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Multiple output tasks will be executed.
|
|
222
|
+
@Test
|
|
223
|
+
public void testInsertDirectOCILarge() throws Exception
|
|
224
|
+
{
|
|
225
|
+
Path in1 = toPath("test_large.csv");
|
|
226
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct_oci_large.yml")), in1);
|
|
227
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_large_expected.csv")));
|
|
228
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
@Test
|
|
232
|
+
public void testInsertDirectEmpty() throws Exception
|
|
233
|
+
{
|
|
234
|
+
Path in1 = getEmptyDir();
|
|
235
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_insert_direct.yml")), in1);
|
|
236
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_empty_expected.csv")));
|
|
237
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
@Test
|
|
241
|
+
public void testTruncateInsert() throws Exception
|
|
242
|
+
{
|
|
243
|
+
Path in1 = toPath("test1.csv");
|
|
244
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_truncate_insert.yml")), in1);
|
|
245
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_truncate_insert_expected.csv")));
|
|
246
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@Test
|
|
250
|
+
public void testTruncateInsertOCI() throws Exception
|
|
251
|
+
{
|
|
252
|
+
Path in1 = toPath("test1.csv");
|
|
253
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_truncate_insert_oci.yml")), in1);
|
|
254
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_truncate_insert_expected.csv")));
|
|
255
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
@Test
|
|
259
|
+
public void testTruncateInsertCreate() throws Exception
|
|
260
|
+
{
|
|
261
|
+
execute(embulk, "DROP TABLE TEST1;" + System.lineSeparator() + "EXIT;");
|
|
262
|
+
|
|
263
|
+
Path in1 = toPath("test1.csv");
|
|
264
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_truncate_insert.yml")), in1);
|
|
265
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
266
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
@Test
|
|
270
|
+
public void testReplace() throws Exception
|
|
271
|
+
{
|
|
272
|
+
Path in1 = toPath("test1.csv");
|
|
273
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace.yml")), in1);
|
|
274
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
275
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
@Test
|
|
279
|
+
public void testReplaceCreate() throws Exception
|
|
280
|
+
{
|
|
281
|
+
execute(embulk, "DROP TABLE TEST1;" + System.lineSeparator() + "EXIT;");
|
|
282
|
+
|
|
283
|
+
Path in1 = toPath("test1.csv");
|
|
284
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace.yml")), in1);
|
|
285
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
286
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
@Test
|
|
290
|
+
public void testReplaceWithColumnOptions() throws Exception
|
|
291
|
+
{
|
|
292
|
+
Path in1 = toPath("test1.csv");
|
|
293
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace_column_options.yml")), in1);
|
|
294
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_truncate_insert_expected.csv")));
|
|
295
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
@Test
|
|
299
|
+
public void testReplaceOCI() throws Exception
|
|
300
|
+
{
|
|
301
|
+
Path in1 = toPath("test1.csv");
|
|
302
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace_oci.yml")), in1);
|
|
303
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_create_expected.csv")));
|
|
304
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
@Test
|
|
308
|
+
public void testReplaceLongNameTable() throws Exception
|
|
309
|
+
{
|
|
310
|
+
Path in1 = toPath("test1.csv");
|
|
311
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace_longname.yml")), in1);
|
|
312
|
+
assertThat(selectRecords(embulk, "TEST12345678901234567890123456"), is(readResource("test_insert_create_expected.csv")));
|
|
313
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
@Test
|
|
317
|
+
public void testReplaceLongNameMultibyteTable() throws Exception
|
|
318
|
+
{
|
|
319
|
+
Path in1 = toPath("test1.csv");
|
|
320
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace_longname_multibyte.yml")), in1);
|
|
321
|
+
assertThat(selectRecords(embulk, "TEST123456789012345678"), is(readResource("test_insert_create_expected.csv")));
|
|
322
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
@Test
|
|
326
|
+
public void testReplaceEmpty() throws Exception
|
|
327
|
+
{
|
|
328
|
+
Path in1 = getEmptyDir();
|
|
329
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_replace.yml")), in1);
|
|
330
|
+
assertThat(selectRecords(embulk, "TEST1"), is(""));
|
|
331
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@Test
|
|
335
|
+
public void testMerge() throws Exception
|
|
336
|
+
{
|
|
337
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A001', 'AAA', 12.34);" + System.lineSeparator() + "EXIT;");
|
|
338
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A003', NULL, NULL);" + System.lineSeparator() + "EXIT;");
|
|
339
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A005', 'EEE', 56.78);" + System.lineSeparator() + "EXIT;");
|
|
340
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A006', 'FFF', 0);" + System.lineSeparator() + "EXIT;");
|
|
341
|
+
|
|
342
|
+
Path in1 = toPath("test_merge.csv");
|
|
343
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_merge.yml")), in1);
|
|
344
|
+
assertThat(selectRecords(embulk, "TEST_MERGE1"), is(readResource("test_merge_expected.csv")));
|
|
345
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
@Test
|
|
349
|
+
public void testMergeWithKeys() throws Exception
|
|
350
|
+
{
|
|
351
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A001', 'AAA', 11.11);" + System.lineSeparator() + "EXIT;");
|
|
352
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A002', 'BBB', 22.22);" + System.lineSeparator() + "EXIT;");
|
|
353
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A003', 'CCC', 33.33);" + System.lineSeparator() + "EXIT;");
|
|
354
|
+
|
|
355
|
+
Path in1 = toPath("test_merge_keys.csv");
|
|
356
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_merge_keys.yml")), in1);
|
|
357
|
+
assertThat(selectRecords(embulk, "TEST_MERGE1"), is(readResource("test_merge_keys_expected.csv")));
|
|
358
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
@Test
|
|
362
|
+
public void testMergeRule() throws Exception
|
|
363
|
+
{
|
|
364
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A002', 'BBB', 22.22);" + System.lineSeparator() + "EXIT;");
|
|
365
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A004', 'DDD', 44.44);" + System.lineSeparator() + "EXIT;");
|
|
366
|
+
execute(embulk, "INSERT INTO TEST_MERGE1 VALUES('A006', 'FFF', 66.66);" + System.lineSeparator() + "EXIT;");
|
|
367
|
+
|
|
368
|
+
Path in1 = toPath("test_merge_rule.csv");
|
|
369
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_merge_rule.yml")), in1);
|
|
370
|
+
assertThat(selectRecords(embulk, "TEST_MERGE1"), is(readResource("test_merge_rule_expected.csv")));
|
|
371
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
@Test
|
|
375
|
+
public void testLowerTable() throws Exception
|
|
376
|
+
{
|
|
377
|
+
Path in1 = toPath("test1.csv");
|
|
378
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_lower_table.yml")), in1);
|
|
379
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
380
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
@Test
|
|
384
|
+
public void testLowerColumn() throws Exception
|
|
385
|
+
{
|
|
386
|
+
Path in1 = toPath("test_lower_column.csv");
|
|
387
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_lower_column.yml")), in1);
|
|
388
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
389
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
@Test
|
|
393
|
+
public void testLowerColumnOptions() throws Exception
|
|
394
|
+
{
|
|
395
|
+
Path in1 = toPath("test_lower_column_options.csv");
|
|
396
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_lower_column_options.yml")), in1);
|
|
397
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
398
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
@Test
|
|
402
|
+
public void testStringToTimestamp() throws Exception
|
|
403
|
+
{
|
|
404
|
+
Path in1 = toPath("test_string_timestamp.csv");
|
|
405
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(baseConfig.merge(loadYamlResource(embulk, "test_string_timestamp.yml")), in1);
|
|
406
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
407
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
@Test
|
|
411
|
+
public void testJdbcUrl() throws Exception
|
|
412
|
+
{
|
|
413
|
+
Path in1 = toPath("test1.csv");
|
|
414
|
+
|
|
415
|
+
String host = baseConfig.get(String.class, "host");
|
|
416
|
+
String port = baseConfig.get(String.class, "port", "1521");
|
|
417
|
+
String user = baseConfig.get(String.class, "user");
|
|
418
|
+
String password = baseConfig.get(String.class, "password");
|
|
419
|
+
String database = baseConfig.get(String.class, "database");
|
|
420
|
+
|
|
421
|
+
ConfigSource config = embulk.newConfig();
|
|
422
|
+
config.set("type", "oracle");
|
|
423
|
+
config.set("url", "jdbc:oracle:thin:@" + host + ":" + port + ":" + database);
|
|
424
|
+
config.set("user", user);
|
|
425
|
+
config.set("password", password);
|
|
426
|
+
|
|
427
|
+
TestingEmbulk.RunResult result1 = embulk.runOutput(config.merge(loadYamlResource(embulk, "test_insert.yml")), in1);
|
|
428
|
+
assertThat(selectRecords(embulk, "TEST1"), is(readResource("test_insert_expected.csv")));
|
|
429
|
+
//assertThat(result1.getConfigDiff(), is((ConfigDiff) loadYamlResource(embulk, "test_expected.diff")));
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
private Path toPath(String fileName) throws URISyntaxException
|
|
434
|
+
{
|
|
435
|
+
URL url = Resources.getResource(BASIC_RESOURCE_PATH + fileName);
|
|
436
|
+
return FileSystems.getDefault().getPath(new File(url.toURI()).getAbsolutePath());
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
private Path getEmptyDir() throws URISyntaxException
|
|
440
|
+
{
|
|
441
|
+
URL url = Resources.getResource(BASIC_RESOURCE_PATH + "test1.csv");
|
|
442
|
+
File dir = new File(new File(url.toURI()).getParentFile(), "empty.csv");
|
|
443
|
+
dir.mkdir();
|
|
444
|
+
Path path = FileSystems.getDefault().getPath(dir.getAbsolutePath());
|
|
445
|
+
// TestingEmbulk will throw exception when it can't open input file.
|
|
446
|
+
// DummyFileSystemProvider will open InputStream no matter whether file exists or not.
|
|
447
|
+
return new DummyPath(path, "id:string");
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
}
|