Source code: org/acs/damsel/srvr/db/TestMidAssetDB.java
1 package org.acs.damsel.srvr.db;
2
3 import java.sql.*;
4 import java.util.*;
5
6 import org.acs.damsel.srvr.*;
7 import org.acs.damsel.srvr.user.*;
8 import org.acs.damsel.srvr.asset.*;
9 import org.acs.damsel.srvr.collection.Collection;
10 import org.acs.damsel.srvr.search.*;
11 import org.acs.damsel.srvr.schema.*;
12 import junit.framework.*;
13
14
15 public class TestMidAssetDB
16 extends TestCase {
17 private MidAssetDB midAssetDB = null;
18
19 protected void setUp() throws Exception {
20 super.setUp();
21 midAssetDB = MidAssetDB.instance();
22 }
23
24 protected void tearDown() throws Exception {
25 midAssetDB = null;
26 super.tearDown();
27 }
28
29 public void testInsert() {
30 String table = "AssetTable";
31 Vector columnNames = new Vector();
32 Vector columnValues = new Vector();
33 columnNames.add("FileName");
34 columnNames.add("PermissionID");
35 columnNames.add("OwnerName");
36 columnValues.add("tester.jpg");
37 columnValues.add("3");
38 columnValues.add("Garcia, Christy");
39 try {
40 midAssetDB = MidAssetDB.instance();
41 this.assertEquals(1, midAssetDB.insert(table, columnNames, columnValues));
42 midAssetDB.delete(table, columnNames, columnValues);
43 }
44 catch (SQLException ex) {
45 this.fail("Unexpected SQLException caught during testInsert.");
46 ex.printStackTrace();
47 }
48 }
49
50 public void testDelete() {
51 try {
52 midAssetDB = MidAssetDB.instance();
53 Vector columnNames = new Vector();
54 Vector columnValues = new Vector();
55 columnNames.add("FileName");
56 columnNames.add("PermissionID");
57 columnNames.add("OwnerName");
58 columnValues.add("tester.jpg");
59 columnValues.add("3");
60 columnValues.add("Garcia, Christy");
61 midAssetDB.insert("AssetTable", columnNames, columnValues);
62 this.assertEquals(1,midAssetDB.delete("AssetTable", columnNames,
63 columnValues));
64 }
65 catch (SQLException ex) {
66 this.fail("Unexpected SQLException caught during testDelete.");
67 ex.printStackTrace();
68 }
69 }
70
71 public void testBrowseQuery() {
72 try {
73 String table = "AssetTable";
74 Vector columnNames = new Vector();
75 Vector columnValues = new Vector();
76 columnNames.add("FileName");
77 columnNames.add("PermissionID");
78 columnNames.add("OwnerName");
79 columnValues.add("tester.jpg");
80 columnValues.add("3");
81 columnValues.add("Garcia, Christy");
82 midAssetDB.insert(table, columnNames, columnValues);
83
84 String collection = "AssetsCollectionsTable";
85 Vector columnNamesCol = new Vector();
86 Vector columnValuesCol = new Vector();
87 columnNamesCol.add("FileName");
88 columnNamesCol.add("CollectionName");
89 columnValuesCol.add("tester.jpg");
90 columnValuesCol.add("Spanish");
91 midAssetDB.insert(collection, columnNamesCol, columnValuesCol);
92
93 Table results = midAssetDB.browseQuery("g", "OwnerName", "Spanish");
94 int rowNum = 0;
95 boolean checkTitle = false;
96 AssetDB assetDB = AssetDB.instance();
97
98 for (int k = 0; k < results.getSizeMetaData(); k++) {
99 if (assetDB.getAsset(results.getResultsElement(k, 0)).getFileName().equals("tester.jpg")) {
100 if (assetDB.getAsset(results.getResultsElement(k, 0)).getAssetDescriptors().
101 getValue("OwnerName").equals("Garcia, Christy")) {
102 checkTitle = true;
103 } // end of if statement
104 } // end of if statement
105 } // end of for loop
106
107 this.assertTrue(checkTitle);
108
109 midAssetDB.delete("AssetTable", columnNames, columnValues);
110 midAssetDB.delete("AssetsCollectionsTable", columnNamesCol,
111 columnValuesCol);
112 }
113 catch (SQLException ex) {
114 this.fail("caught SQL Exception in testBrowseQuery");
115 }
116 }
117
118 public void testUpdate() {
119 try {
120 AssetDB assetDB = AssetDB.instance();
121 Vector updateColumnNames = new Vector();
122 Vector updateColumnValues = new Vector();
123 Vector whereColumnValues = new Vector();
124 Vector whereColumnNames = new Vector();
125
126 User user = new User();
127 user.setFirstName("testUpdate_FirstName");
128 user.setLastName("testUpdate_LastName");
129 user.setUserName("testUpdateName");
130 user.setMiddleInitial("");
131 user.setPassword("password");
132 user.setOrganization("testUpdate_org");
133 assetDB.addUser(user);
134
135 updateColumnNames.add("FirstName");
136 updateColumnNames.add("LastName");
137 updateColumnValues.add("testUpdate_newFirstName");
138 updateColumnValues.add("testUpdate_newLastName");
139
140 whereColumnNames.add("UserName");
141 whereColumnValues.add("testUpdateName");
142
143 this.assertEquals(1,
144 midAssetDB.update("UsersTable", updateColumnNames,
145 updateColumnValues,
146 whereColumnNames,
147 whereColumnValues));
148
149 User updatedUser = assetDB.getUser("testUpdateName", "password");
150 this.assertEquals("testUpdate_newFirstName", updatedUser.getFirstName());
151 this.assertEquals("testUpdate_newLastName", updatedUser.getLastName());
152 this.assertEquals("testUpdate_org", updatedUser.getOrganization());
153 assetDB.deleteUser(updatedUser);
154 }
155 catch (SQLException ex) {
156 this.fail("Caught unexpected SQLException in testUpdate: " +
157 ex.getMessage());
158 }
159 }
160
161 public void testAdvancedQuery() {
162 try {
163 Asset a = new Asset();
164 AssetDescriptor fileNameAD = new AssetDescriptor();
165 AssetDescriptor titleAD = new AssetDescriptor();
166
167 fileNameAD.setTag("FileName");
168 fileNameAD.setValue("testAQ.jpg");
169 titleAD.setTag("Title");
170 titleAD.setValue("Test Advanced Query");
171 AssetDescriptorCollection adc = new AssetDescriptorCollection();
172 adc.addAssetDescriptor(fileNameAD);
173 adc.addAssetDescriptor(titleAD);
174 a.setAssetDescriptors(adc);
175 Collection c = new Collection();
176 c.setCollectionName("testAdvancedQueryCollection");
177 AssetDB.instance().addCollection(c);
178 AssetDB.instance().addAsset(a, c.getCollectionName());
179
180 Table results = null;
181 AdvancedSearchParams params = new AdvancedSearchParams();
182 SearchPair sp = new SearchPair();
183 sp.setField("Title");
184 sp.setValue("Test Advanced Query");
185 this.assertNotNull(sp);
186 params.addExactSearchPair(sp);
187 params.setCollectionName("testAdvancedQueryCollection");
188
189 midAssetDB = midAssetDB.instance();
190 AssetDB assetDB = AssetDB.instance();
191 results = midAssetDB.advancedQuery(params);
192 this.assertNotNull(results);
193 this.assertEquals("testAQ.jpg", results.getResultsElement(0,0));
194 this.assertEquals("Test Advanced Query", assetDB.getAsset(results.getResultsElement(0,0))
195 .getAssetDescriptors().getValue("Title"));
196
197 AssetDB.instance().deleteCollection(c);
198 AssetDB.instance().deleteAsset(a);
199 AssetDB.instance().removeAssetFromAllCollections(a);
200 }
201 catch (SQLException ex) {
202 this.fail("Unexpected SQLException caught in testAdvancedQuery");
203 ex.printStackTrace();
204 }
205 catch (SchemaException ex2) {
206 this.fail("Unexpected SchemaException caught in testContains : " + ex2.getMessage());
207 }
208 }
209 }