1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.sftp;
18
19 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertThrows;
22
23 import org.apache.commons.vfs2.FileSystemOptions;
24 import org.junit.Before;
25 import org.junit.Test;
26
27 import com.jcraft.jsch.JSch;
28 import com.jcraft.jsch.JSchException;
29 import com.jcraft.jsch.Session;
30
31
32
33
34 public class SftpFileSystemGroupsTests {
35
36 private SftpFileSystem fileSystem;
37 private final FileSystemOptions options = new FileSystemOptions();
38 private Session session;
39
40 @Before
41 public void setup() throws JSchException {
42 session = new JSch().getSession("");
43 fileSystem = new SftpFileSystem(null, session, options);
44 }
45
46 @Test
47 public void testShouldHandleEmptyGroupResult() {
48 final StringBuilder builder = new StringBuilder("\n");
49 final int[] groups = fileSystem.parseGroupIdOutput(builder);
50
51 assertEquals(0, groups.length, "Group ids should be empty");
52 }
53
54 @Test
55 public void testShouldHandleListOfGroupIds() {
56 final StringBuilder builder = new StringBuilder("1 22 333 4444\n");
57 final int[] groups = fileSystem.parseGroupIdOutput(builder);
58
59 assertEquals(4, groups.length, "Group ids should not be empty");
60 assertArrayEquals(new int[]{1, 22, 333, 4444}, groups);
61 }
62
63 @Test
64 public void testShouldThrowOnUnexpectedOutput() {
65 final StringBuilder builder = new StringBuilder("abc\n");
66 assertThrows(NumberFormatException.class, () -> fileSystem.parseGroupIdOutput(builder));
67 }
68
69 }