1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.net.ftp.parser;
18
19 import org.apache.commons.net.ftp.FTPFile;
20 import org.apache.commons.net.ftp.FTPFileEntryParser;
21 import org.junit.jupiter.api.Test;
22
23
24
25 class MLSxEntryParserTest extends AbstractFTPParseTest {
26
27 private static final String[] badsamples = { "Type=cdir;Modify=20141022065101;UNIX.mode=0775;/no/space",
28 "Type=cdir;Modify=20141022065103;UNIX.mode=0775;",
29 "/no/leading/space", "",
30 "Type=cdir;Modify=20141022065102;UNIX.mode=0775; ",
31 "Type=dir;Size; missing =size", "Type=dir missing-semicolon", "Type= missing value and semicolon", " ",
32 "Modify=2014; Short stamp", "Type=pdir;Modify=20141205180002Z; /trailing chars in Modify",
33 "Type=dir;Modify=2014102206510x2.999;UNIX.mode=0775; modify has spurious chars", };
34
35 private static final String[] goodsamples = { "Type=cdir;Modify=20141022065102;UNIX.mode=0775; /commons/net",
36 "Type=pdir;Modify=20141205180002;UNIX.mode=0775; /commons", "Type=file;Size=431;Modify=20130303210732;UNIX.mode=0664; HEADER.html",
37 "Type=file;Size=1880;Modify=20130611172748;UNIX.mode=0664; README.html",
38 "Type=file;Size=2364;Modify=20130611170131;UNIX.mode=0664; RELEASE-NOTES.txt", "Type=dir;Modify=20141022065102;UNIX.mode=0775; binaries",
39 "Type=dir;Modify=20141022065102.999;UNIX.mode=0775; source", " /no/facts",
40 "Type=; /empty/fact", "Size=; /empty/size", " Type=cdir;Modify=20141022065102;UNIX.mode=0775; /leading/space",
41
42 " ",
43 };
44
45 @Override
46 protected String[] getBadListing() {
47 return badsamples;
48 }
49
50 @Override
51 protected String[] getGoodListing() {
52 return goodsamples;
53 }
54
55 @Override
56 protected FTPFileEntryParser getParser() {
57 return MLSxEntryParser.getInstance();
58 }
59
60
61
62
63
64
65
66 @Override
67 protected FTPFile nullFileOrNullDate(final FTPFile f) {
68 return f;
69 }
70
71 @Override
72 @Test
73 void testDefaultPrecision() {
74 testPrecision("Type=dir;Modify=20141022065102;UNIX.mode=0775; source", CalendarUnit.SECOND);
75 }
76
77 @Override
78 @Test
79 void testParseFieldsOnDirectory() throws Exception {
80 }
81
82 @Override
83 @Test
84 void testParseFieldsOnFile() throws Exception {
85 }
86
87 @Override
88 @Test
89 void testRecentPrecision() {
90 testPrecision("Type=dir;Modify=20141022065102.999;UNIX.mode=0775; source", CalendarUnit.MILLISECOND);
91 }
92 }