From 238486dd77d4ac51f25ec34c4def822f9a3c53bb Mon Sep 17 00:00:00 2001 From: Chen Date: Sun, 4 Jul 2021 02:42:23 +0800 Subject: [PATCH] [CSV-148] Add testcases about withIgnoreSurroundingSpaces() and withTrim() (#70) --- .../commons/csv/issues/JiraCsv148Test.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/test/java/org/apache/commons/csv/issues/JiraCsv148Test.java diff --git a/src/test/java/org/apache/commons/csv/issues/JiraCsv148Test.java b/src/test/java/org/apache/commons/csv/issues/JiraCsv148Test.java new file mode 100644 index 00000000..1a92f187 --- /dev/null +++ b/src/test/java/org/apache/commons/csv/issues/JiraCsv148Test.java @@ -0,0 +1,55 @@ +/* + * 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.commons.csv.issues; + +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.QuoteMode; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class JiraCsv148Test { + + /** + * The difference between withTrim()and withIgnoreSurroundingSpace(): + * difference: withTrim() can remove the leading and trailing spaces and newlines in quotation marks, + * while withIgnoreSurroundingSpace() cannot + * The same point: you can remove the leading and trailing spaces,tabs and other symbols. + */ + @Test + public void testWithTrimEmpty() throws Exception { + final CSVFormat format = CSVFormat.DEFAULT.withQuoteMode(QuoteMode.ALL).withTrim(); + assertEquals("\"\",\"\",\"Single space on the left\",\"Single space on the right\"," + + "\"Single spaces on both sides\",\"Multiple spaces on the left\"," + + "\"Multiple spaces on the right\",\"Multiple spaces on both sides\"", + format.format("", " ", " Single space on the left", "Single space on the right ", + " Single spaces on both sides ", " Multiple spaces on the left", + "Multiple spaces on the right ", " Multiple spaces on both sides ")); + } + + @Test + public void testWithIgnoreSurroundingSpacesEmpty() throws Exception { + final CSVFormat format = CSVFormat.DEFAULT.withQuoteMode(QuoteMode.ALL).withIgnoreSurroundingSpaces(); + assertEquals("\"\",\" \",\" Single space on the left\",\"Single space on the right \"," + + "\" Single spaces on both sides \",\" Multiple spaces on the left\"," + + "\"Multiple spaces on the right \",\" Multiple spaces on both sides \"", + format.format("", " ", " Single space on the left", "Single space on the right ", + " Single spaces on both sides ", " Multiple spaces on the left", + "Multiple spaces on the right ", " Multiple spaces on both sides ")); + } +}