1 package org.naftulin.classpathexplorer.dublicate.imlp;
2
3 import org.naftulin.classpathexplorer.AccessibleResource;
4 import org.naftulin.classpathexplorer.dublicate.imlp.AccessibleArchive;
5 import org.naftulin.classpathexplorer.dublicate.imlp.ResourceRegistry;
6
7 import junit.framework.TestCase;
8
9 public class ResourceRegistryTest extends TestCase {
10
11
12
13
14 public void testGetResourcesByFullName() {
15 ResourceRegistry registry = ResourceRegistry.getInstance();
16 registry.clearRegistry();
17 AccessibleResourceDummy dummy = new AccessibleResourceDummy();
18 dummy.setPath("a/b/c/");
19 dummy.setName("D.class");
20 registry.addResource(dummy);
21
22 AccessibleResource[] resourceArr = registry.getResourcesByFullName("a/b/c/D.class");
23 assertEquals("found elements", 1, resourceArr.length);
24
25 resourceArr = registry.getResourcesByFullName("nothing/nothing/Nothing.class");
26 assertEquals("found elements", 0, resourceArr.length);
27
28 registry.addResource(dummy);
29 resourceArr = registry.getResourcesByFullName("a/b/c/D.class");
30 assertEquals("found elements", 2, resourceArr.length);
31 assertTrue("dublicated resources", registry.isAnyResourceDublicated());
32 assertTrue("dublicated resource", registry.isResourceDublicated(dummy));
33 }
34
35
36
37
38 public void testGetResroucesByName() {
39 ResourceRegistry registry = ResourceRegistry.getInstance();
40 registry.clearRegistry();
41 AccessibleResourceDummy dummy = new AccessibleResourceDummy();
42 dummy.setPath("a/b/c/D.class");
43 dummy.setName("D.class");
44 registry.addResource(dummy);
45
46 AccessibleResource[] resourceArr = registry.getResroucesByName(dummy.getName());
47 assertEquals("found elements", 1, resourceArr.length);
48
49 resourceArr = registry.getResroucesByName("nothing/nothing/Nothing.class");
50 assertEquals("found elements", 0, resourceArr.length);
51
52 registry.addResource(dummy);
53 resourceArr = registry.getResroucesByName(dummy.getName());
54 assertEquals("found elements", 2, resourceArr.length);
55 assertTrue("dublicated resources", registry.isAnyResourceDublicated());
56 assertTrue("dublicated resource", registry.isResourceDublicated(dummy));
57
58 AccessibleResourceDummy dummy1 = new AccessibleResourceDummy();
59 dummy1.setPath("a/b/z/D.class");
60 dummy1.setName("D.class");
61 registry.addResource(dummy);
62
63 resourceArr = registry.getResroucesByName(dummy.getName());
64 assertEquals("found elements", 3, resourceArr.length);
65 assertFalse("dublicated resource", registry.isResourceDublicated(dummy1));
66
67 }
68
69
70
71
72 public void testGetResrouces() {
73 ResourceRegistry registry = ResourceRegistry.getInstance();
74 registry.clearRegistry();
75 AccessibleResourceDummy dummy = new AccessibleResourceDummy();
76 dummy.setPath("a/b/c/D.class");
77 dummy.setName("D.class");
78 registry.addResource(dummy);
79 registry.addResource(dummy);
80
81 AccessibleResourceDummy dummy1 = new AccessibleResourceDummy();
82 dummy1.setPath("a/b/z/D.class");
83 dummy1.setName("D.class");
84 registry.addResource(dummy);
85
86 assertEquals("resources", 3, registry.getResrouces().length);
87 }
88
89
90
91
92 public void testIsResourceDublicated() {
93 ResourceRegistry registry = ResourceRegistry.getInstance();
94 registry.clearRegistry();
95 AccessibleResourceDummy dummy = new AccessibleResourceDummy();
96 dummy.setPath("a/b/c/D.class");
97 dummy.setName("D.class");
98 registry.addResource(dummy);
99 registry.addResource(dummy);
100 assertTrue("resource duplicated", registry.isResourceDublicated(dummy));
101
102 AccessibleResourceDummy dummy1 = new AccessibleResourceDummy();
103 dummy1.setPath("a/b/z/D.class");
104 dummy1.setName("D.class");
105 registry.addResource(dummy);
106 assertFalse("resource duplicated", registry.isResourceDublicated(dummy1));
107 }
108
109
110
111
112 public void testIsAnyResourceDublicated() {
113 ResourceRegistry registry = ResourceRegistry.getInstance();
114 registry.clearRegistry();
115 AccessibleResourceDummy dummy = new AccessibleResourceDummy();
116 dummy.setPath("a/b/c/D.class");
117 dummy.setName("D.class");
118 registry.addResource(dummy);
119 registry.addResource(dummy);
120 assertTrue("resource duplicated", registry.isAnyResourceDublicated());
121
122 AccessibleResourceDummy dummy1 = new AccessibleResourceDummy();
123 dummy1.setPath("a/b/z/D.class");
124 dummy1.setName("D.class");
125 registry.addResource(dummy);
126 assertTrue("resource duplicated", registry.isAnyResourceDublicated());
127 }
128
129 private static class AccessibleResourceDummy implements AccessibleResource {
130 private AccessibleArchive archive;
131 private String fullPath;
132 private long lastModified;
133 private String name;
134 private String path;
135 public AccessibleArchive getArchive() {
136 return archive;
137 }
138 public void setArchive(AccessibleArchive archive) {
139 this.archive = archive;
140 }
141 public String getFullPath() {
142 return fullPath;
143 }
144 public void setFullPath(String fullPath) {
145 this.fullPath = fullPath;
146 }
147 public long getLastModified() {
148 return lastModified;
149 }
150 public void setLastModified(long lastModified) {
151 this.lastModified = lastModified;
152 }
153 public String getName() {
154 return name;
155 }
156 public void setName(String name) {
157 this.name = name;
158 }
159 public String getPath() {
160 return path;
161 }
162 public String getKey() {
163 return path + name;
164 }
165 public void setPath(String path) {
166 this.path = path;
167 }
168 public String toXml() {
169 return "<myXml/>";
170 }
171
172
173
174 }
175 }