View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      https://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.text.translate;
18  
19  import static org.junit.jupiter.api.Assertions.assertEquals;
20  
21  import java.io.IOException;
22  import java.io.StringWriter;
23  import java.io.Writer;
24  
25  import org.apache.commons.lang3.CharUtils;
26  import org.junit.jupiter.api.Test;
27  
28  class CsvTranslatorsTest {
29  
30      @Test
31      void testCsvEscaperCommaTest() throws IOException {
32          final CsvTranslators.CsvEscaper escaper = new CsvTranslators.CsvEscaper();
33          final Writer writer = new StringWriter();
34          final String input = "hi,this,is,a,test";
35          escaper.translateWhole(input, writer);
36          final String data = writer.toString();
37          assertEquals("\"hi,this,is,a,test\"", data);
38      }
39  
40      @Test
41      void testCsvEscaperCRTest() throws IOException {
42          final CsvTranslators.CsvEscaper escaper = new CsvTranslators.CsvEscaper();
43          final Writer writer = new StringWriter();
44          final String input = "hi,this,is,a,CR,test" + String.valueOf(CharUtils.CR);
45          escaper.translateWhole(input, writer);
46          final String data = writer.toString();
47          assertEquals("\"hi,this,is,a,CR,test" + String.valueOf(CharUtils.CR) + "\"", data);
48      }
49  
50      @Test
51      void testCsvEscaperLFTest() throws IOException {
52          final CsvTranslators.CsvEscaper escaper = new CsvTranslators.CsvEscaper();
53          final Writer writer = new StringWriter();
54          final String input = "hi,this,is,a,LF,test" + String.valueOf(CharUtils.LF);
55          escaper.translateWhole(input, writer);
56          final String data = writer.toString();
57          assertEquals("\"hi,this,is,a,LF,test" + String.valueOf(CharUtils.LF) + "\"", data);
58      }
59  
60      @Test
61      void testCsvEscaperPlaneTextTest() throws IOException {
62          final CsvTranslators.CsvEscaper escaper = new CsvTranslators.CsvEscaper();
63          final Writer writer = new StringWriter();
64          final String input = "hi this is just a plane text nothing to do with csv!";
65          escaper.translateWhole(input, writer);
66          final String data = writer.toString();
67          assertEquals(data, input);
68      }
69  
70      @Test
71      void testCsvEscaperQuoteTest() throws IOException {
72          final CsvTranslators.CsvEscaper escaper = new CsvTranslators.CsvEscaper();
73          final Writer writer = new StringWriter();
74          final String input = "hi,this,is,a,\"quote,test";
75          escaper.translateWhole(input, writer);
76          final String data = writer.toString();
77          assertEquals("\"hi,this,is,a,\"\"quote,test\"", data);
78      }
79  
80      @Test
81      void testCsvUnEscaperPlaneTextTest() throws IOException {
82          final CsvTranslators.CsvUnescaper escaper = new CsvTranslators.CsvUnescaper();
83          final Writer writer = new StringWriter();
84          final String input = "hi,this,is,unescape,test";
85          escaper.translateWhole(input, writer);
86          final String data = writer.toString();
87          assertEquals(input, data);
88      }
89  
90      @Test
91      void testCsvUnEscaperTest1() throws IOException {
92          final CsvTranslators.CsvUnescaper escaper = new CsvTranslators.CsvUnescaper();
93          final Writer writer = new StringWriter();
94          final String input = "\"hi,this,is,unescape,test\"";
95          escaper.translateWhole(input, writer);
96          final String data = writer.toString();
97          assertEquals("hi,this,is,unescape,test", data);
98      }
99  
100     @Test
101     void testCsvUnEscaperTest2() throws IOException {
102         final CsvTranslators.CsvUnescaper escaper = new CsvTranslators.CsvUnescaper();
103         final Writer writer = new StringWriter();
104         final String input = "\"hi,this,is,unescape,test";
105         escaper.translateWhole(input, writer);
106         final String data = writer.toString();
107         assertEquals(input, data);
108     }
109 
110     @Test
111     void testCsvUnEscaperTest3() throws IOException {
112         final CsvTranslators.CsvUnescaper escaper = new CsvTranslators.CsvUnescaper();
113         final Writer writer = new StringWriter();
114         final String input = "hi,this,is,unescape,test\"";
115         escaper.translateWhole(input, writer);
116         final String data = writer.toString();
117         assertEquals(input, data);
118     }
119 
120     @Test
121     void testCsvUnEscaperTest4() throws IOException {
122         final CsvTranslators.CsvUnescaper escaper = new CsvTranslators.CsvUnescaper();
123         final Writer writer = new StringWriter();
124         final String input = "\"hi,this,is,\"unescape,test\"";
125         escaper.translateWhole(input, writer);
126         final String data = writer.toString();
127         assertEquals("hi,this,is,\"unescape,test", data);
128     }
129 
130 }