Repository: flink
Updated Branches:
  refs/heads/master a2e999b96 -> dffde7efb


[FLINK-4506] [DataSet] Fix documentation of CsvOutputFormat about incorrect 
default of allowNullValues

- Add test case for CsvOutputFormat

This closes #2477
This closes #2631


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/a85d8e57
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/a85d8e57
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/a85d8e57

Branch: refs/heads/master
Commit: a85d8e57a3501e39284e24221b50c6222e85c06c
Parents: a2e999b
Author: Kirill Morozov <kirill_moro...@epam.com>
Authored: Wed Sep 7 12:43:26 2016 +0100
Committer: Fabian Hueske <fhue...@apache.org>
Committed: Sat Oct 15 07:59:50 2016 +0200

----------------------------------------------------------------------
 .../flink/api/java/io/CsvOutputFormat.java      |  2 +-
 .../flink/api/java/io/CsvOutputFormatTest.java  | 79 ++++++++++++++++++++
 2 files changed, 80 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/a85d8e57/flink-java/src/main/java/org/apache/flink/api/java/io/CsvOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/flink-java/src/main/java/org/apache/flink/api/java/io/CsvOutputFormat.java 
b/flink-java/src/main/java/org/apache/flink/api/java/io/CsvOutputFormat.java
index dc20620..703128f 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/io/CsvOutputFormat.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/io/CsvOutputFormat.java
@@ -122,7 +122,7 @@ public class CsvOutputFormat<T extends Tuple> extends 
FileOutputFormat<T> implem
         * Configures the format to either allow null values (writing an empty 
field),
         * or to throw an exception when encountering a null field.
         * <p>
-        * by default, null values are allowed.
+        * by default, null values are disallowed.
         *
         * @param allowNulls Flag to indicate whether the output format should 
accept null values.
         */

http://git-wip-us.apache.org/repos/asf/flink/blob/a85d8e57/flink-java/src/test/java/org/apache/flink/api/java/io/CsvOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/flink-java/src/test/java/org/apache/flink/api/java/io/CsvOutputFormatTest.java
 
b/flink-java/src/test/java/org/apache/flink/api/java/io/CsvOutputFormatTest.java
new file mode 100644
index 0000000..006f940
--- /dev/null
+++ 
b/flink-java/src/test/java/org/apache/flink/api/java/io/CsvOutputFormatTest.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.api.java.io;
+
+import org.apache.flink.api.common.io.FileOutputFormat;
+import org.apache.flink.api.java.tuple.Tuple3;
+import org.apache.flink.core.fs.FileSystem;
+import org.apache.flink.core.fs.Path;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+public class CsvOutputFormatTest {
+
+       private String path = null;
+
+       @Before
+       public void createFile() throws Exception {
+               path = 
File.createTempFile("csv_output_test_file",".csv").getAbsolutePath();
+       }
+
+       @Test
+       public void testNullAllow() throws Exception {
+
+               CsvOutputFormat<Tuple3<String, String, Integer>> 
csvOutputFormat = new CsvOutputFormat<>(new Path(path));
+               csvOutputFormat.setWriteMode(FileSystem.WriteMode.OVERWRITE);
+               
csvOutputFormat.setOutputDirectoryMode(FileOutputFormat.OutputDirectoryMode.PARONLY);
+               csvOutputFormat.setAllowNullValues(true);
+               csvOutputFormat.open(0, 1);
+               csvOutputFormat.writeRecord(new Tuple3<String, String, 
Integer>("One", null, 8));
+               csvOutputFormat.close();
+
+               java.nio.file.Path p = Paths.get(path);
+               Assert.assertTrue(Files.exists(p));
+               List<String> lines = Files.readAllLines(Paths.get(path), 
StandardCharsets.UTF_8);
+               Assert.assertEquals(1, lines.size());
+               Assert.assertEquals("One,,8", lines.get(0));
+       }
+
+       @Test(expected = RuntimeException.class)
+       public void testNullDisallowOnDefault() throws Exception {
+               CsvOutputFormat<Tuple3<String, String, Integer>> 
csvOutputFormat = new CsvOutputFormat<>(new Path(path));
+               csvOutputFormat.setWriteMode(FileSystem.WriteMode.OVERWRITE);
+               
csvOutputFormat.setOutputDirectoryMode(FileOutputFormat.OutputDirectoryMode.PARONLY);
+               csvOutputFormat.open(0, 1);
+               csvOutputFormat.writeRecord(new Tuple3<String, String, 
Integer>("One", null, 8));
+               csvOutputFormat.close();
+       }
+
+       @After
+       public void cleanUp() throws IOException {
+               Files.deleteIfExists(Paths.get(path));
+       }
+
+}

Reply via email to