Source code: org/acs/damsel/srvr/asset/TestAssetDescriptorCollection.java
1 package org.acs.damsel.srvr.asset;
2
3 import junit.framework.*;
4 import org.acs.damsel.srvr.db.*;
5 import java.sql.*;
6
7 public class TestAssetDescriptorCollection
8 extends TestCase {
9 private AssetDescriptorCollection assetDescriptorCollection = null;
10
11 public TestAssetDescriptorCollection(String name) {
12 super(name);
13 }
14
15 protected void setUp() throws Exception {
16 super.setUp();
17 assetDescriptorCollection = new AssetDescriptorCollection();
18 }
19
20 /* Test the constructor */
21 public void testCreate() {
22 assetDescriptorCollection = new AssetDescriptorCollection();
23 this.assertNotNull(assetDescriptorCollection);
24 }
25
26 /* Test addAssetDescriptor */
27 public void testAddAssetDescriptor() {
28 /* Test that addAssetDescriptor updates the size */
29 this.assertEquals(0, assetDescriptorCollection.size());
30 assetDescriptorCollection.addAssetDescriptor(new AssetDescriptor());
31 this.assertEquals(1, assetDescriptorCollection.size());
32 assetDescriptorCollection.addAssetDescriptor(new AssetDescriptor());
33 this.assertEquals(2, assetDescriptorCollection.size());
34
35 }
36
37 /* Test removeAssetDescriptor */
38 public void testRemoveAssetDescriptor() {
39 /* Test that removeAssetDescriptor updates the size and returns true for
40 valid AssetDescriptor*/
41 AssetDescriptor one = new AssetDescriptor();
42 AssetDescriptor two = new AssetDescriptor();
43 AssetDescriptor three = new AssetDescriptor();
44 assetDescriptorCollection.addAssetDescriptor(one);
45 assetDescriptorCollection.addAssetDescriptor(two);
46 assetDescriptorCollection.addAssetDescriptor(three);
47 boolean test;
48 this.assertEquals(3, assetDescriptorCollection.size());
49 test = assetDescriptorCollection.removeAssetDescriptor(one);
50 this.assertEquals(2, assetDescriptorCollection.size());
51 this.assertTrue(test);
52 test = assetDescriptorCollection.removeAssetDescriptor(two);
53 this.assertEquals(1, assetDescriptorCollection.size());
54 this.assertTrue(test);
55 test = assetDescriptorCollection.removeAssetDescriptor(three);
56 this.assertEquals(0, assetDescriptorCollection.size());
57 this.assertTrue(test);
58
59 /* Test removing a non-existant AssetDescriptor */
60 this.assertFalse(assetDescriptorCollection.removeAssetDescriptor(new AssetDescriptor()));
61 this.assertFalse(assetDescriptorCollection.removeAssetDescriptor(one));
62 this.assertFalse(assetDescriptorCollection.removeAssetDescriptor(two));
63 this.assertFalse(assetDescriptorCollection.removeAssetDescriptor(three));
64 }
65
66 /* tests the getTag() method */
67 public void testGetTag(){
68 AssetDescriptor one = new AssetDescriptor("Title", "one");
69 AssetDescriptor two = new AssetDescriptor("Data", "two");
70 AssetDescriptor three = new AssetDescriptor("Author", "three");
71 assetDescriptorCollection.addAssetDescriptor(one);
72 assetDescriptorCollection.addAssetDescriptor(two);
73 assetDescriptorCollection.addAssetDescriptor(three);
74 String str6 = assetDescriptorCollection.getTag("one");
75 String str2 = assetDescriptorCollection.getTag("two");
76 String str3 = assetDescriptorCollection.getTag("three");
77 this.assertTrue(str6.equals("Title"));
78 this.assertTrue(str2.equals("Data"));
79 this.assertTrue(str3.equals("Author"));
80
81 /*Test trying to get a tag that doesnt exist: should return null */
82 assetDescriptorCollection = new AssetDescriptorCollection();
83 String test = assetDescriptorCollection.getTag("blah");
84 this.assertNull(test);
85 assetDescriptorCollection.addAssetDescriptor(new AssetDescriptor("testTag", "testValue"));
86 test = assetDescriptorCollection.getTag("testValue");
87 this.assertNotNull(test);
88 this.assertTrue(test.equals("testTag"));
89 }
90
91 /* Test trying to get the value associated with a defined metadata tag*/
92 public void testGetValue(){
93 try {
94 Asset a = new Asset();
95 AssetDescriptor fileNameAD = new AssetDescriptor();
96 AssetDescriptor titleAD = new AssetDescriptor();
97 fileNameAD.setTag("FileName");
98 fileNameAD.setValue("testAs.jpg");
99 titleAD.setTag("Title");
100 titleAD.setValue("TestTitle");
101
102 AssetDescriptorCollection adc = new AssetDescriptorCollection();
103 adc.addAssetDescriptor(fileNameAD);
104 adc.addAssetDescriptor(titleAD);
105 a.setAssetDescriptors(adc);
106
107 AssetDB assetDB = AssetDB.instance();
108 assetDB.addAsset(a, "TestColl");
109 this.assertEquals("testAs.jpg", a.getAssetDescriptors().getValue("FileName"));
110 this.assertEquals("TestTitle", a.getAssetDescriptors().getValue("Title"));
111 assetDB.deleteAsset(a);
112 assetDB.removeAssetFromAllCollections(a);
113 }
114 catch (SQLException ex) {
115 this.fail("Caught unexpected SQL error.");
116 ex.printStackTrace();
117 }
118 }
119
120 }