1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2;
18
19 import org.junit.Assert;
20 import org.junit.Test;
21
22
23
24
25
26
27 public class FileSystemOptionsTest {
28
29 public static class JUnitConfigBuilder extends FileSystemConfigBuilder {
30 private abstract static class JUnitFS implements FileSystem {
31 }
32
33 private static final JUnitConfigBuilder BUILDER = new JUnitConfigBuilder();
34
35 public static JUnitConfigBuilder getInstance() {
36 return BUILDER;
37 }
38
39 @Override
40 protected Class<? extends FileSystem> getConfigClass() {
41 return JUnitFS.class;
42 }
43
44 public void setId(final FileSystemOptions opts, final String id) {
45 setParam(opts, "id", id);
46 }
47
48 public void setNames(final FileSystemOptions opts, final String[] names) {
49 setParam(opts, "names", names);
50 }
51 }
52
53 @Test
54 public void testEqualsHashCodeAndCompareTo() {
55 final JUnitConfigBuilder builder = JUnitConfigBuilder.getInstance();
56 final FileSystemOptions expected = new FileSystemOptions();
57 builder.setId(expected, "Test");
58
59 final FileSystemOptions actual = new FileSystemOptions();
60 builder.setId(actual, "Test");
61
62 Assert.assertEquals(expected, actual);
63 Assert.assertEquals(0, actual.compareTo(expected));
64 Assert.assertEquals(expected.hashCode(), actual.hashCode());
65
66 builder.setNames(expected, new String[] { "A", "B", "C" });
67
68 Assert.assertNotEquals(expected, actual);
69 Assert.assertEquals(-1, actual.compareTo(expected));
70 Assert.assertNotEquals(expected.hashCode(), actual.hashCode());
71
72 builder.setNames(actual, new String[] { "A", "B", "C" });
73
74 Assert.assertEquals(expected, actual);
75 Assert.assertEquals(0, actual.compareTo(expected));
76 Assert.assertEquals(expected.hashCode(), actual.hashCode());
77 }
78
79 }