Skip to content

Commit 18f91e6

Browse files
committed
Update tests.
1 parent c79330c commit 18f91e6

4 files changed

Lines changed: 50 additions & 18 deletions

File tree

kilo-client/src/main/java/org/httprpc/kilo/io/CSVEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private void encode(Object value, Writer writer) throws IOException {
8888
}
8989

9090
if (value instanceof Date date) {
91-
value = date.toInstant();
91+
value = date.getTime();
9292
}
9393

9494
var formatter = formatters.get(value.getClass());

kilo-client/src/test/java/org/httprpc/kilo/io/CSVEncoderTest.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,48 @@
1414

1515
package org.httprpc.kilo.io;
1616

17+
import org.junit.jupiter.api.Test;
18+
19+
import java.io.IOException;
20+
import java.io.StringWriter;
21+
import java.time.Instant;
22+
import java.util.Date;
23+
24+
import static org.httprpc.kilo.util.Collections.*;
25+
import static org.junit.jupiter.api.Assertions.*;
26+
1727
public class CSVEncoderTest {
18-
// TODO
28+
@Test
29+
public void testWrite() throws IOException {
30+
var now = new Date(0);
31+
32+
var row = listOf("a,b,\"c\",\r\nd,é", 123, true, now);
33+
34+
var csvEncoder = new CSVEncoder();
35+
36+
csvEncoder.format(Boolean.class, flag -> flag ? "Y" : "N");
37+
csvEncoder.format(Instant.class, instant -> String.valueOf(instant.toEpochMilli()));
38+
39+
var writer = new StringWriter();
40+
41+
csvEncoder.write(row, writer);
42+
43+
assertEquals("\"a,b,\"\"c\"\",\r\nd,é\",123,\"Y\",0\r\n", writer.toString());
44+
}
45+
46+
@Test
47+
public void testWriteAll() throws IOException {
48+
var rows = listOf(
49+
listOf("abc", 123, true),
50+
listOf("def", 456, false)
51+
);
52+
53+
var csvEncoder = new CSVEncoder();
54+
55+
var writer = new StringWriter();
56+
57+
csvEncoder.writeAll(rows, writer);
58+
59+
assertEquals("\"abc\",123,true\r\n\"def\",456,false\r\n", writer.toString());
60+
}
1961
}

kilo-client/src/test/java/org/httprpc/kilo/io/TextDecoderTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@
2424
public class TextDecoderTest {
2525
@Test
2626
public void testRead() throws IOException {
27-
var expected = "héllo/r/nwørld";
27+
var text = "héllo/r/nwørld";
2828

2929
var textDecoder = new TextDecoder();
3030

31-
var actual = textDecoder.read(new StringReader(expected));
32-
33-
assertEquals(expected, actual);
31+
assertEquals(text, textDecoder.read(new StringReader(text)));
3432
}
3533
}

kilo-client/src/test/java/org/httprpc/kilo/io/TextEncoderTest.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,20 @@
1818

1919
import java.io.IOException;
2020
import java.io.StringWriter;
21-
import java.time.LocalDate;
2221

2322
import static org.junit.jupiter.api.Assertions.*;
2423

2524
public class TextEncoderTest {
2625
@Test
27-
public void testString() throws IOException {
28-
assertEquals("héllo/r/nwørld", encode("héllo/r/nwørld"));
29-
}
30-
31-
@Test
32-
public void testLocalDate() throws IOException {
33-
assertEquals("2024-03-31", encode(LocalDate.of(2024, 3, 31)));
34-
}
26+
public void testWrite() throws IOException {
27+
var text = "héllo/r/nwørld";
3528

36-
private static String encode(Object value) throws IOException {
3729
var textEncoder = new TextEncoder();
3830

3931
var writer = new StringWriter();
4032

41-
textEncoder.write(value, writer);
33+
textEncoder.write(text, writer);
4234

43-
return writer.toString();
35+
assertEquals(text, writer.toString());
4436
}
4537
}

0 commit comments

Comments
 (0)