Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/acs/damsel/srvr/collection/TestCollection.java


1   package org.acs.damsel.srvr.collection;
2   
3   import junit.framework.*;
4   import org.acs.damsel.srvr.asset.*;
5   import org.acs.damsel.srvr.schema.*;
6   import org.acs.damsel.srvr.db.*;
7   import org.acs.damsel.srvr.user.*;
8   import java.sql.*;
9   import java.util.Iterator;
10  
11  public class TestCollection
12      extends TestCase {
13    private Collection collection = null;
14    private Asset one, two, three, four; //Assets for testing purposes
15  
16    public TestCollection(String name) {
17      super(name);
18    }
19  
20    protected void setUp() throws Exception {
21      super.setUp();
22      collection = new Collection();
23    }
24  
25    /* Test constructor */
26    public void testConstructor() {
27      this.assertNotNull(collection);
28      this.assertNull(collection.collectionName);
29      this.assertNull(collection.schemaName);
30      this.assertNull(collection.ownerName);
31      this.assertNull(collection.description);
32      this.assertNull(collection.repositoryName);
33      this.assertNull(collection.permissionID);
34      this.assertNull(collection.groupName);
35    }
36  
37   /*Private helper method to populate the specified collection */
38    private void populateCollection(String collectionName) {
39      collection = new Collection(collectionName);
40      one = new Asset();
41      one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("FileName",
42          collectionName + "One.jpg"));
43      one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author",
44          collectionName + "Author"));
45      one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title",
46          collectionName + "TitleOne"));
47      two = new Asset();
48      two.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("FileName",
49          collectionName + "Two.jpg"));
50      two.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author",
51          collectionName + "Author"));
52      two.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title",
53          collectionName + "TitleTwo"));
54      three = new Asset();
55      three.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor(
56          "FileName", collectionName + "Three.jpg"));
57      three.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author",
58          collectionName + "Author"));
59      three.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title",
60          collectionName + "TitleThree"));
61      four = new Asset();
62      four.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor(
63          "FileName", collectionName + "Four.jpg"));
64      four.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author",
65          collectionName + "Author"));
66      four.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title",
67          collectionName + "TitleFour"));
68  
69      /*Populate the collection */
70      collection.addAsset(one);
71      collection.addAsset(two);
72      collection.addAsset(three);
73      collection.addAsset(four);
74    }
75  
76    /*Removes the assests in the specified collection and the collection from the database */
77    private void removeAssetsAndCollection() {
78      /* Remove the Assets from the database */
79      try {
80        AssetDB assetDB = AssetDB.instance();
81        assetDB.deleteAsset(one);
82        assetDB.deleteAsset(two);
83        assetDB.deleteAsset(three);
84        assetDB.deleteAsset(four);
85        assetDB.deleteCollection(collection);
86        assetDB.removeAssetFromAllCollections(one);
87        assetDB.removeAssetFromAllCollections(two);
88        assetDB.removeAssetFromAllCollections(three);
89        assetDB.removeAssetFromAllCollections(four);
90  
91      }
92      catch (SQLException ex) {
93        this.fail("Unexpected SQL Exception caught in testContains : " + ex.getMessage());
94      }
95      catch (SchemaException ex2) {
96        this.fail("Unexpected SchemaException caught in testContains : " + ex2.getMessage());
97      }
98    }
99  
100   /* Test if asset is in collection! */
101   public void testContains() {
102     this.populateCollection("TestContainsCollection");
103     /* Checking to see if our collection contains Asset one */
104     this.assertTrue(collection.contains(one));
105 
106     Collection newCollection = new Collection("Not the collection you were thinking of");
107     Asset five = new Asset();
108     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("FileName", "five.jpg"));
109     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author", "Mike"));
110     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title", "TestTwo"));
111     newCollection.addAsset(five);
112     /* Checking to see if the asset just inserted into a different collection
113       is not in the collection */
114     this.assertFalse(collection.contains(five));
115     this.removeAssetsAndCollection();
116     /* Remove the Assets from the database */
117     try {
118       AssetDB assetDB = AssetDB.instance();
119       assetDB.deleteAsset(five);
120       assetDB.removeAssetFromAllCollections(five);
121     }
122     catch (SQLException ex) {
123       this.fail("Unexpected SQL Exception caught in testSize : " +
124                 ex.getMessage());
125     }
126 
127   }
128 
129   /* Test if asset was getted */
130   public void testGetAsset () {
131     Asset newAsset = null;
132     try {
133       this.populateCollection("TestGetAssetCollection");
134       AssetDB assetDB = AssetDB.instance();
135       assetDB.addCollection(collection);
136       newAsset = collection.getAsset("TestGetAssetCollectionOne.jpg");
137       this.assertNotNull(newAsset);
138       /* Testing if asset gotten was null */
139       /* Testing if asset's descriptors were valid */
140       this.assertTrue(newAsset.getAssetDescriptors().getValue("Title").equals(
141           "TestGetAssetCollectionTitleOne"));
142       this.assertTrue(newAsset.getAssetDescriptors().getValue("Author").equals(
143           "TestGetAssetCollectionAuthor"));
144       this.assertTrue(newAsset.getAssetDescriptors().getValue("FileName").
145                       equals("TestGetAssetCollectionOne.jpg"));
146     }
147     catch (SQLException ex1) {
148       this.fail("Caught unexpected SQL exception in testGetAsset.");
149       ex1.printStackTrace();
150     }
151     /* Creating a second asset to insert into a Different Collection */
152     Collection newCollection = new Collection("Not the collection you were thinking of");
153     Asset five = new Asset();
154     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("FileName", "five.jpg"));
155     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author", "Mike"));
156     five.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title", "TestTwo"));
157     newCollection.addAsset(five);
158     try {
159       Schema s = AssetDB.instance().getSchema("Default");
160       AssetDB.instance().setSchemaOfCollection(collection, s);
161       AssetDB.instance().setSchemaOfCollection(newCollection, s);
162     }
163     catch (SchemaException ex2) {
164       this.fail();
165     }
166     catch (SQLException ex2) {
167       this.fail();
168     }
169     newAsset = collection.getAsset("five.jpg");
170     /* Checking if asset that was not in the collection returned a null Asset */
171     this.assertNull(newAsset);
172     this.removeAssetsAndCollection();
173     /* Remove the Assets and Collections from the database */
174     try {
175       AssetDB assetDB = AssetDB.instance();
176       assetDB.deleteAsset(five);
177       assetDB.deleteCollection(collection);
178       assetDB.deleteCollection(newCollection);
179       assetDB.removeAssetFromAllCollections(five);
180     }
181     catch (SQLException ex) {
182       this.fail("Unexpected SQL Exception caught in testSize : " +
183                 ex.getMessage());
184     }
185     catch (SchemaException ex2) {
186       this.fail("Unexpected SchemaException caught in testContains : " + ex2.getMessage());
187     }
188   }
189 
190   /* Test isPublic */
191   public void testIsPublic() {
192     try {
193       AssetDB assetDB = AssetDB.instance();
194       Collection coll1 = new Collection();
195       Collection coll2 = new Collection();
196       coll1.setCollectionName("testIsPublicColl1");
197       coll2.setCollectionName("testIsPublicColl2");
198       coll1.setPermissionID("15");
199       coll2.setPermissionID("127");
200       assetDB.addCollection(coll1);
201       assetDB.addCollection(coll2);
202       this.assertFalse(coll1.isPublic());
203       this.assertTrue(coll2.isPublic());
204       assetDB.deleteCollection(coll1);
205       assetDB.deleteCollection(coll2);
206     }
207     catch (SQLException ex) {
208       this.fail("Unexpected SQLException caught in testIsPublic " + ex.getMessage());
209     }
210     catch (SchemaException ex2) {
211       this.fail("Unexpected SchemaException caught in testContains : " + ex2.getMessage());
212     }
213   }
214 
215   /* Test if asset was added to collection */
216   public void testAddAsset() {
217     this.populateCollection("TestAddAssetCollection");
218     this.assertEquals(4, collection.size());
219 
220     this.assertTrue(collection.contains(one));
221     this.assertTrue(collection.contains(two));
222     this.assertTrue(collection.contains(three));
223     this.assertTrue(collection.contains(four));
224     this.removeAssetsAndCollection();
225   }
226 
227   /*Test getsAllAssets */
228   public void testGetAllAssets() {
229     this.populateCollection("TestGetAllAssetsCollection");
230 
231     CollectionView results = collection.getAllAssets();
232     this.assertEquals(4, results.size());
233     Iterator i = results.iterator();
234     Asset tempAss;
235     /*Check that our set of results are not null and exist in the collection */
236     while(i.hasNext()) {
237       tempAss = (Asset) i.next();
238       this.assertNotNull(tempAss);
239       this.assertTrue(collection.contains(tempAss));
240     }
241     this.removeAssetsAndCollection();
242   }
243 
244   /* Test if asset was removed from collection */
245   public void testRemoveAsset() {
246     this.populateCollection("TestRemoveAssetCollection");
247     int size = collection.size();
248 
249     this.assertTrue(collection.removeAsset(one));
250     this.assertEquals(size - 1, collection.size());
251     this.assertTrue(collection.removeAsset(two));
252     this.assertEquals(size - 2, collection.size());
253     this.assertTrue(collection.removeAsset(three));
254     this.assertEquals(size - 3, collection.size());
255     this.assertTrue(collection.removeAsset(four));
256     this.assertEquals(size - 4, collection.size());
257 
258     this.removeAssetsAndCollection();
259   }
260 
261   /* Test getter and setter for schema */
262   public void testSchema() {
263     assertNull(collection.getSchemaName());
264     String schema = new String("SchemaTest");
265     collection.setSchemaName(schema);
266     assertEquals("SchemaTest", collection.getSchemaName());
267   }
268 
269   /* Test getter and setter for name */
270   public void testName() {
271     this.assertNull(collection.getCollectionName());
272     collection.setCollectionName("TestNameCollection");
273     this.assertEquals("TestNameCollection", collection.getCollectionName());
274   }
275 
276   /* Test size */
277   public void testSize() {
278     collection.setCollectionName("TestSizeCollection");
279     int size = collection.size();
280     Asset one = new Asset();
281     one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("FileName", "one.jpg"));
282     one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Author", "Mike"));
283     one.getAssetDescriptors().addAssetDescriptor(new AssetDescriptor("Title",
284         "TestOne"));
285     collection.addAsset(one);
286     this.assertEquals(size + 1, collection.size());
287     /* Remove the Assets from the database */
288     try {
289       AssetDB assetDB = AssetDB.instance();
290       assetDB.deleteAsset(one);
291       assetDB.removeAssetFromAllCollections(one);
292       this.assertEquals(size, collection.size());
293       assetDB.removeAssetFromAllCollections(one);
294     }
295     catch (SQLException ex) {
296       this.fail("Unexpected SQL Exception caught in testSize : " +
297                 ex.getMessage());
298     }
299   }
300 
301   protected void tearDown() throws Exception {
302     collection = null;
303     super.tearDown();
304   }
305 }