diff options
Diffstat (limited to 'OpenSim/Tests/Inventory')
-rw-r--r-- | OpenSim/Tests/Inventory/Properties/AssemblyInfo.cs | 62 | ||||
-rw-r--r-- | OpenSim/Tests/Inventory/TestInventory.cs | 1006 |
2 files changed, 0 insertions, 1068 deletions
diff --git a/OpenSim/Tests/Inventory/Properties/AssemblyInfo.cs b/OpenSim/Tests/Inventory/Properties/AssemblyInfo.cs deleted file mode 100644 index eb4da1c..0000000 --- a/OpenSim/Tests/Inventory/Properties/AssemblyInfo.cs +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System.Reflection; | ||
29 | using System.Runtime.CompilerServices; | ||
30 | using System.Runtime.InteropServices; | ||
31 | |||
32 | // General information about an assembly is controlled through the following | ||
33 | // set of attributes. Change these attribute values to modify the information | ||
34 | // associated with an assembly. | ||
35 | [assembly: AssemblyTitle("Inventory")] | ||
36 | [assembly: AssemblyDescription("")] | ||
37 | [assembly: AssemblyConfiguration("")] | ||
38 | [assembly: AssemblyCompany("Lauridsen")] | ||
39 | [assembly: AssemblyProduct("Inventory")] | ||
40 | [assembly: AssemblyCopyright("Copyright (c) Lauridsen 2007")] | ||
41 | [assembly: AssemblyTrademark("")] | ||
42 | [assembly: AssemblyCulture("")] | ||
43 | |||
44 | // Setting ComVisible to false makes the types in this assembly not visible | ||
45 | // to COM components. If you need to access a type in this assembly from | ||
46 | // COM, set the ComVisible attribute to true on that type. | ||
47 | [assembly: ComVisible(false)] | ||
48 | |||
49 | // The following GUID is for the ID of the typelib if this project is exposed to COM | ||
50 | [assembly: Guid("2330add7-08a2-4f33-9ab8-74894fe7e3dd")] | ||
51 | |||
52 | // Version information for an assembly consists of the following four values: | ||
53 | // | ||
54 | // Major Version | ||
55 | // Minor Version | ||
56 | // Build Number | ||
57 | // Revision | ||
58 | // | ||
59 | // You can specify all the values or you can default the Revision and Build Numbers | ||
60 | // by using the '*' as shown below: | ||
61 | [assembly: AssemblyVersion("1.0.0.0")] | ||
62 | [assembly: AssemblyFileVersion("1.0.0.0")] | ||
diff --git a/OpenSim/Tests/Inventory/TestInventory.cs b/OpenSim/Tests/Inventory/TestInventory.cs deleted file mode 100644 index 3c90e1f..0000000 --- a/OpenSim/Tests/Inventory/TestInventory.cs +++ /dev/null | |||
@@ -1,1006 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using NUnit.Framework; | ||
32 | |||
33 | using libsecondlife; | ||
34 | using OpenSim.Framework.Types; | ||
35 | using OpenSim.Data; | ||
36 | using OpenSim.Data.SQLite; | ||
37 | using OpenSim.Data.MySQL; | ||
38 | using OpenSim.Framework.Console; | ||
39 | |||
40 | namespace OpenSim.Test.Inventory | ||
41 | { | ||
42 | [TestFixture] | ||
43 | public class TestInventory | ||
44 | { | ||
45 | IInventoryDataPlugin _dbPlugin; | ||
46 | LLUUID _agent_1_id; | ||
47 | public static LLUUID LibraryFolderRootUuid = new LLUUID("5926de2a-c2d7-4c11-ac4e-74512ffeb6d1"); | ||
48 | |||
49 | Random _rnd = new Random((int)DateTime.Now.Ticks); | ||
50 | |||
51 | [TestFixtureSetUp] | ||
52 | public void SetupInventoryTest() | ||
53 | { | ||
54 | _agent_1_id = LLUUID.Random(); | ||
55 | |||
56 | MainConsole.Instance = new ConsoleBase("TEST", null); | ||
57 | |||
58 | // _dbPlugin = new SQLiteInventoryStore(); | ||
59 | _dbPlugin = new MySQLInventoryData(); | ||
60 | _dbPlugin.Initialise(); | ||
61 | } | ||
62 | |||
63 | [TestFixtureTearDown] | ||
64 | public void TeardownInventoryTest() | ||
65 | { | ||
66 | _dbPlugin.Close(); | ||
67 | } | ||
68 | |||
69 | private bool AreFoldersIdentical(InventoryFolderBase a, InventoryFolderBase b) | ||
70 | { | ||
71 | if (a.agentID != b.agentID) return false; | ||
72 | if (a.folderID != b.folderID) return false; | ||
73 | if (a.name != b.name) return false; | ||
74 | if (a.parentID != b.parentID) return false; | ||
75 | if (a.type != b.type) return false; | ||
76 | if (a.version != b.version) return false; | ||
77 | return true; | ||
78 | } | ||
79 | |||
80 | private bool AreItemsIdentical(InventoryItemBase a, InventoryItemBase b) | ||
81 | { | ||
82 | if (a.assetID != b.assetID) return false; | ||
83 | if (a.assetType != b.assetType) return false; | ||
84 | if (a.avatarID != b.avatarID) return false; | ||
85 | if (a.creatorsID != b.creatorsID) return false; | ||
86 | if (a.inventoryBasePermissions != b.inventoryBasePermissions) return false; | ||
87 | if (a.inventoryCurrentPermissions != b.inventoryCurrentPermissions) return false; | ||
88 | if (a.inventoryEveryOnePermissions != b.inventoryEveryOnePermissions) return false; | ||
89 | if (a.inventoryNextPermissions != b.inventoryNextPermissions) return false; | ||
90 | if (a.inventoryID != b.inventoryID) return false; | ||
91 | if (a.inventoryDescription != b.inventoryDescription) return false; | ||
92 | if (a.inventoryName != b.inventoryName) return false; | ||
93 | if (a.invType != b.invType) return false; | ||
94 | if (a.parentFolderID != b.parentFolderID) return false; | ||
95 | return true; | ||
96 | } | ||
97 | |||
98 | /// <summary> | ||
99 | /// Test that we can insert a root folder | ||
100 | /// </summary> | ||
101 | [Test] | ||
102 | public void T01_SetupRootFolder() | ||
103 | { | ||
104 | InventoryFolderBase root = new InventoryFolderBase(); | ||
105 | root.agentID = _agent_1_id; | ||
106 | root.folderID = _agent_1_id; | ||
107 | root.name = "Root folder"; | ||
108 | root.parentID = LLUUID.Zero; | ||
109 | root.type = 2; | ||
110 | root.version = 2; | ||
111 | _dbPlugin.addInventoryFolder(root); | ||
112 | |||
113 | InventoryFolderBase f = _dbPlugin.getInventoryFolder(root.folderID); | ||
114 | Assert.IsNotNull(f, "Failed to get existing folder"); | ||
115 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
116 | |||
117 | // Test that we only get the root folder, based on it's id, i.e. any other gui will not find the folder | ||
118 | f = _dbPlugin.getInventoryFolder(LLUUID.Zero); | ||
119 | Assert.IsNull(f, "get folder returned a folder, but shouldn't find one"); | ||
120 | |||
121 | f = _dbPlugin.getInventoryFolder(LLUUID.Random()); | ||
122 | Assert.IsNull(f, "get folder returned a folder, but shouldn't find one"); | ||
123 | |||
124 | // test that we can delete the folder | ||
125 | |||
126 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
127 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
128 | Assert.IsNull(f, "get folder returned a folder, but it should have been deleted"); | ||
129 | } | ||
130 | |||
131 | /// <summary> | ||
132 | /// Make sure that all folders reported as root folders are root folders | ||
133 | /// </summary> | ||
134 | [Test] | ||
135 | public void T02_TestRootFolder() | ||
136 | { | ||
137 | InventoryFolderBase root = new InventoryFolderBase(); | ||
138 | root.agentID = _agent_1_id; | ||
139 | root.folderID = _agent_1_id; | ||
140 | root.name = "Root folder"; | ||
141 | root.parentID = LLUUID.Zero; | ||
142 | root.type = 2; | ||
143 | root.version = 2; | ||
144 | _dbPlugin.addInventoryFolder(root); | ||
145 | |||
146 | List<InventoryFolderBase> folders = _dbPlugin.getUserRootFolders(_agent_1_id); | ||
147 | Assert.IsNotNull(folders, "Failed to get rootfolders for user"); | ||
148 | |||
149 | bool foundRoot = false; | ||
150 | foreach (InventoryFolderBase f in folders) | ||
151 | { | ||
152 | // a root folder has a zero valued LLUUID | ||
153 | Assert.AreEqual(f.parentID, LLUUID.Zero, "non root folder returned"); | ||
154 | |||
155 | if (f.agentID == root.agentID) | ||
156 | { | ||
157 | // we cannot have two different user specific root folders | ||
158 | Assert.IsFalse(foundRoot, "Two different user specific root folders returned"); | ||
159 | |||
160 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
161 | foundRoot = false; | ||
162 | } | ||
163 | } | ||
164 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
165 | } | ||
166 | |||
167 | /// <summary> | ||
168 | /// Test of folder hierarchy | ||
169 | /// </summary> | ||
170 | [Test] | ||
171 | public void T03_TestRootFolder() | ||
172 | { | ||
173 | InventoryFolderBase root = new InventoryFolderBase(); | ||
174 | root.agentID = _agent_1_id; | ||
175 | root.folderID = _agent_1_id; | ||
176 | root.name = "Root folder"; | ||
177 | root.parentID = LLUUID.Zero; | ||
178 | root.type = 2; | ||
179 | root.version = 2; | ||
180 | _dbPlugin.addInventoryFolder(root); | ||
181 | |||
182 | List<InventoryFolderBase> folders = _dbPlugin.getInventoryFolders(_agent_1_id); | ||
183 | Assert.IsNotNull(folders, "null was returned, but an empty list of subfolders were expected"); | ||
184 | Assert.IsEmpty(folders, "non empty collection was returned, even though the list of sub-folders should be empty"); | ||
185 | |||
186 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
187 | child1.agentID = _agent_1_id; | ||
188 | child1.folderID = LLUUID.Random(); | ||
189 | child1.name = "Child 1"; | ||
190 | child1.parentID = root.folderID; | ||
191 | child1.type = 3; | ||
192 | child1.version = 3; | ||
193 | _dbPlugin.addInventoryFolder(child1); | ||
194 | |||
195 | InventoryFolderBase child2 = new InventoryFolderBase(); | ||
196 | child2.agentID = _agent_1_id; | ||
197 | child2.folderID = LLUUID.Random(); | ||
198 | child2.name = "Child 2"; | ||
199 | child2.parentID = root.folderID; | ||
200 | child2.type = 4; | ||
201 | child2.version = 4; | ||
202 | _dbPlugin.addInventoryFolder(child2); | ||
203 | |||
204 | folders = _dbPlugin.getInventoryFolders(_agent_1_id); | ||
205 | Assert.IsNotNull(folders, "null was returned, but an empty list of subfolders were expected"); | ||
206 | Assert.AreEqual(folders.Count, 2, "two children were reported as inserted into the root folder"); | ||
207 | |||
208 | bool foundChild1 = false; | ||
209 | bool foundChild2 = false; | ||
210 | |||
211 | foreach (InventoryFolderBase f in folders) | ||
212 | { | ||
213 | if (f.folderID == child1.folderID) | ||
214 | { | ||
215 | Assert.IsTrue(AreFoldersIdentical(child1, f), "Difference between stored and retrieved folder data"); | ||
216 | foundChild1 = true; | ||
217 | } | ||
218 | else if (f.folderID == child2.folderID) | ||
219 | { | ||
220 | Assert.IsTrue(AreFoldersIdentical(child2, f), "Difference between stored and retrieved folder data"); | ||
221 | foundChild2 = true; | ||
222 | } | ||
223 | else | ||
224 | { | ||
225 | Assert.Fail("found unknown child folder"); | ||
226 | } | ||
227 | } | ||
228 | |||
229 | if (foundChild1 == false || foundChild2 == false) | ||
230 | { | ||
231 | Assert.Fail("one of the two child folders was not returned"); | ||
232 | } | ||
233 | |||
234 | _dbPlugin.deleteInventoryFolder(child2.folderID); | ||
235 | _dbPlugin.deleteInventoryFolder(child1.folderID); | ||
236 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
237 | } | ||
238 | |||
239 | /// <summary> | ||
240 | /// Test of folder hierarchy, and deletion | ||
241 | /// </summary> | ||
242 | [Test] | ||
243 | public void T04_TestRootFolder() | ||
244 | { | ||
245 | InventoryFolderBase root = new InventoryFolderBase(); | ||
246 | root.agentID = _agent_1_id; | ||
247 | root.folderID = _agent_1_id; | ||
248 | root.name = "Root folder"; | ||
249 | root.parentID = LLUUID.Zero; | ||
250 | root.type = 2; | ||
251 | root.version = 2; | ||
252 | _dbPlugin.addInventoryFolder(root); | ||
253 | |||
254 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
255 | child1.agentID = _agent_1_id; | ||
256 | child1.folderID = LLUUID.Random(); | ||
257 | child1.name = "Child 1"; | ||
258 | child1.parentID = root.folderID; | ||
259 | child1.type = 3; | ||
260 | child1.version = 3; | ||
261 | _dbPlugin.addInventoryFolder(child1); | ||
262 | |||
263 | InventoryFolderBase child2 = new InventoryFolderBase(); | ||
264 | child2.agentID = _agent_1_id; | ||
265 | child2.folderID = LLUUID.Random(); | ||
266 | child2.name = "Child 2"; | ||
267 | child2.parentID = root.folderID; | ||
268 | child2.type = 4; | ||
269 | child2.version = 4; | ||
270 | _dbPlugin.addInventoryFolder(child2); | ||
271 | |||
272 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
273 | |||
274 | List<InventoryFolderBase> folders = _dbPlugin.getInventoryFolders(_agent_1_id); | ||
275 | Assert.IsNotNull(folders, "null was returned, but an empty list of subfolders were expected"); | ||
276 | Assert.IsEmpty(folders, "non empty collection was returned, even though the list of sub-folders should be empty"); | ||
277 | |||
278 | InventoryFolderBase f = _dbPlugin.getInventoryFolder(_agent_1_id); | ||
279 | Assert.IsNull(f, "Folder was returned, even though is has been deleted"); | ||
280 | |||
281 | f = _dbPlugin.getInventoryFolder(child1.folderID); | ||
282 | Assert.IsNull(f, "Folder was returned, even though is has been deleted"); | ||
283 | |||
284 | f = _dbPlugin.getInventoryFolder(child2.folderID); | ||
285 | Assert.IsNull(f, "Folder was returned, even though is has been deleted"); | ||
286 | } | ||
287 | |||
288 | /// <summary> | ||
289 | /// Folder update | ||
290 | /// </summary> | ||
291 | [Test] | ||
292 | public void T05_UpdateFolder() | ||
293 | { | ||
294 | InventoryFolderBase root = new InventoryFolderBase(); | ||
295 | root.agentID = _agent_1_id; | ||
296 | root.folderID = _agent_1_id; | ||
297 | root.name = "Root folder"; | ||
298 | root.parentID = LLUUID.Zero; | ||
299 | root.type = 2; | ||
300 | root.version = 2; | ||
301 | _dbPlugin.addInventoryFolder(root); | ||
302 | |||
303 | InventoryFolderBase f = _dbPlugin.getInventoryFolder(_agent_1_id); | ||
304 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
305 | |||
306 | root.agentID = LLUUID.Random(); | ||
307 | _dbPlugin.updateInventoryFolder(root); | ||
308 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
309 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
310 | |||
311 | root.folderID = LLUUID.Random(); | ||
312 | _dbPlugin.updateInventoryFolder(root); | ||
313 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
314 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
315 | |||
316 | root.name = "Root folder 2"; | ||
317 | _dbPlugin.updateInventoryFolder(root); | ||
318 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
319 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
320 | |||
321 | root.parentID = LLUUID.Random(); | ||
322 | _dbPlugin.updateInventoryFolder(root); | ||
323 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
324 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
325 | |||
326 | root.type = (short)(root.type + 1); | ||
327 | _dbPlugin.updateInventoryFolder(root); | ||
328 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
329 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
330 | |||
331 | root.version = (ushort)(root.version + 1); | ||
332 | _dbPlugin.updateInventoryFolder(root); | ||
333 | f = _dbPlugin.getInventoryFolder(root.folderID); | ||
334 | Assert.IsTrue(AreFoldersIdentical(root, f), "Difference between stored and retrieved folder data"); | ||
335 | |||
336 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
337 | _dbPlugin.deleteInventoryFolder(root.folderID); | ||
338 | } | ||
339 | |||
340 | /// <summary> | ||
341 | /// Test that we can insert a root folder | ||
342 | /// </summary> | ||
343 | [Test] | ||
344 | public void T06_SetupInventoryWithItems() | ||
345 | { | ||
346 | |||
347 | // Setup inventory | ||
348 | InventoryFolderBase root = new InventoryFolderBase(); | ||
349 | root.agentID = _agent_1_id; | ||
350 | root.folderID = _agent_1_id; | ||
351 | root.name = "Root folder"; | ||
352 | root.parentID = LLUUID.Zero; | ||
353 | root.type = 2; | ||
354 | root.version = 2; | ||
355 | _dbPlugin.addInventoryFolder(root); | ||
356 | |||
357 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
358 | child1.agentID = _agent_1_id; | ||
359 | child1.folderID = LLUUID.Random(); | ||
360 | child1.name = "Child 1"; | ||
361 | child1.parentID = root.folderID; | ||
362 | child1.type = 3; | ||
363 | child1.version = 3; | ||
364 | _dbPlugin.addInventoryFolder(child1); | ||
365 | |||
366 | InventoryFolderBase child1Child = new InventoryFolderBase(); | ||
367 | child1Child.agentID = _agent_1_id; | ||
368 | child1Child.folderID = LLUUID.Random(); | ||
369 | child1Child.name = "Child 1 child"; | ||
370 | child1Child.parentID = child1.folderID; | ||
371 | child1Child.type = 4; | ||
372 | child1Child.version = 4; | ||
373 | _dbPlugin.addInventoryFolder(child1Child); | ||
374 | |||
375 | InventoryFolderBase child2 = new InventoryFolderBase(); | ||
376 | child2.agentID = _agent_1_id; | ||
377 | child2.folderID = LLUUID.Random(); | ||
378 | child2.name = "Child 2"; | ||
379 | child2.parentID = root.folderID; | ||
380 | child2.type = 5; | ||
381 | child2.version = 5; | ||
382 | _dbPlugin.addInventoryFolder(child2); | ||
383 | |||
384 | InventoryFolderBase child2Child = new InventoryFolderBase(); | ||
385 | child2Child.agentID = _agent_1_id; | ||
386 | child2Child.folderID = LLUUID.Random(); | ||
387 | child2Child.name = "Child 2 child"; | ||
388 | child2Child.parentID = child2.folderID; | ||
389 | child2Child.type = 6; | ||
390 | child2Child.version = 6; | ||
391 | _dbPlugin.addInventoryFolder(child2Child); | ||
392 | |||
393 | InventoryItemBase rootItem = new InventoryItemBase(); | ||
394 | rootItem.assetID = LLUUID.Random(); | ||
395 | rootItem.assetType = _rnd.Next(1, 1000); | ||
396 | rootItem.avatarID = _agent_1_id; | ||
397 | rootItem.creatorsID = LLUUID.Random(); | ||
398 | rootItem.inventoryBasePermissions = (uint)_rnd.Next(1,1000000); | ||
399 | rootItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
400 | rootItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
401 | rootItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
402 | rootItem.inventoryID = LLUUID.Random(); | ||
403 | rootItem.inventoryDescription = "Root item, Description"; | ||
404 | rootItem.inventoryName = "Root item"; | ||
405 | rootItem.invType = _rnd.Next(1, 1000); | ||
406 | rootItem.parentFolderID = root.folderID; | ||
407 | _dbPlugin.addInventoryItem(rootItem); | ||
408 | |||
409 | InventoryItemBase child1Item = new InventoryItemBase(); | ||
410 | child1Item.assetID = LLUUID.Random(); | ||
411 | child1Item.assetType = _rnd.Next(1, 1000); | ||
412 | child1Item.avatarID = _agent_1_id; | ||
413 | child1Item.creatorsID = LLUUID.Random(); | ||
414 | child1Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
415 | child1Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
416 | child1Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
417 | child1Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
418 | child1Item.inventoryID = LLUUID.Random(); | ||
419 | child1Item.inventoryDescription = "child1 item, Description"; | ||
420 | child1Item.inventoryName = "child1 item"; | ||
421 | child1Item.invType = _rnd.Next(1, 1000); | ||
422 | child1Item.parentFolderID = child1.folderID; | ||
423 | _dbPlugin.addInventoryItem(child1Item); | ||
424 | |||
425 | InventoryItemBase child1ChildItem = new InventoryItemBase(); | ||
426 | child1ChildItem.assetID = LLUUID.Random(); | ||
427 | child1ChildItem.assetType = _rnd.Next(1, 1000); | ||
428 | child1ChildItem.avatarID = _agent_1_id; | ||
429 | child1ChildItem.creatorsID = LLUUID.Random(); | ||
430 | child1ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
431 | child1ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
432 | child1ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
433 | child1ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
434 | child1ChildItem.inventoryID = LLUUID.Random(); | ||
435 | child1ChildItem.inventoryDescription = "child1Child item, Description"; | ||
436 | child1ChildItem.inventoryName = "child1Child item"; | ||
437 | child1ChildItem.invType = _rnd.Next(1, 1000); | ||
438 | child1ChildItem.parentFolderID = child1Child.folderID; | ||
439 | _dbPlugin.addInventoryItem(child1ChildItem); | ||
440 | |||
441 | InventoryItemBase child2Item = new InventoryItemBase(); | ||
442 | child2Item.assetID = LLUUID.Random(); | ||
443 | child2Item.assetType = _rnd.Next(1, 1000); | ||
444 | child2Item.avatarID = _agent_1_id; | ||
445 | child2Item.creatorsID = LLUUID.Random(); | ||
446 | child2Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
447 | child2Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
448 | child2Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
449 | child2Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
450 | child2Item.inventoryID = LLUUID.Random(); | ||
451 | child2Item.inventoryDescription = "child2 item, Description"; | ||
452 | child2Item.inventoryName = "child2 item"; | ||
453 | child2Item.invType = _rnd.Next(1, 1000); | ||
454 | child2Item.parentFolderID = child2.folderID; | ||
455 | _dbPlugin.addInventoryItem(child2Item); | ||
456 | |||
457 | InventoryItemBase child2ChildItem = new InventoryItemBase(); | ||
458 | child2ChildItem.assetID = LLUUID.Random(); | ||
459 | child2ChildItem.assetType = _rnd.Next(1, 1000); | ||
460 | child2ChildItem.avatarID = _agent_1_id; | ||
461 | child2ChildItem.creatorsID = LLUUID.Random(); | ||
462 | child2ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
463 | child2ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
464 | child2ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
465 | child2ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
466 | child2ChildItem.inventoryID = LLUUID.Random(); | ||
467 | child2ChildItem.inventoryDescription = "child2Child item, Description"; | ||
468 | child2ChildItem.inventoryName = "child2Child item"; | ||
469 | child2ChildItem.invType = _rnd.Next(1, 1000); | ||
470 | child2ChildItem.parentFolderID = child2Child.folderID; | ||
471 | _dbPlugin.addInventoryItem(child2ChildItem); | ||
472 | |||
473 | // test read of items | ||
474 | |||
475 | InventoryItemBase item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
476 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
477 | |||
478 | item = _dbPlugin.getInventoryItem(child1Item.inventoryID); | ||
479 | Assert.IsTrue(AreItemsIdentical(child1Item, item)); | ||
480 | |||
481 | item = _dbPlugin.getInventoryItem(child1ChildItem.inventoryID); | ||
482 | Assert.IsTrue(AreItemsIdentical(child1ChildItem, item)); | ||
483 | |||
484 | item = _dbPlugin.getInventoryItem(child2Item.inventoryID); | ||
485 | Assert.IsTrue(AreItemsIdentical(child2Item, item)); | ||
486 | |||
487 | item = _dbPlugin.getInventoryItem(child2ChildItem.inventoryID); | ||
488 | Assert.IsTrue(AreItemsIdentical(child2ChildItem, item)); | ||
489 | |||
490 | _dbPlugin.deleteInventoryItem(rootItem.inventoryID); | ||
491 | _dbPlugin.deleteInventoryItem(child1Item.inventoryID); | ||
492 | _dbPlugin.deleteInventoryItem(child1ChildItem.inventoryID); | ||
493 | _dbPlugin.deleteInventoryItem(child2Item.inventoryID); | ||
494 | _dbPlugin.deleteInventoryItem(child2ChildItem.inventoryID); | ||
495 | } | ||
496 | |||
497 | /// <summary> | ||
498 | /// Test that we can insert a root folder | ||
499 | /// </summary> | ||
500 | [Test] | ||
501 | public void T07_DeleteInventoryWithItems() | ||
502 | { | ||
503 | |||
504 | // Setup inventory | ||
505 | InventoryFolderBase root = new InventoryFolderBase(); | ||
506 | root.agentID = _agent_1_id; | ||
507 | root.folderID = _agent_1_id; | ||
508 | root.name = "Root folder"; | ||
509 | root.parentID = LLUUID.Zero; | ||
510 | root.type = 2; | ||
511 | root.version = 2; | ||
512 | _dbPlugin.addInventoryFolder(root); | ||
513 | |||
514 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
515 | child1.agentID = _agent_1_id; | ||
516 | child1.folderID = LLUUID.Random(); | ||
517 | child1.name = "Child 1"; | ||
518 | child1.parentID = root.folderID; | ||
519 | child1.type = 3; | ||
520 | child1.version = 3; | ||
521 | _dbPlugin.addInventoryFolder(child1); | ||
522 | |||
523 | InventoryFolderBase child1Child = new InventoryFolderBase(); | ||
524 | child1Child.agentID = _agent_1_id; | ||
525 | child1Child.folderID = LLUUID.Random(); | ||
526 | child1Child.name = "Child 1 child"; | ||
527 | child1Child.parentID = child1.folderID; | ||
528 | child1Child.type = 4; | ||
529 | child1Child.version = 4; | ||
530 | _dbPlugin.addInventoryFolder(child1Child); | ||
531 | |||
532 | InventoryFolderBase child2 = new InventoryFolderBase(); | ||
533 | child2.agentID = _agent_1_id; | ||
534 | child2.folderID = LLUUID.Random(); | ||
535 | child2.name = "Child 2"; | ||
536 | child2.parentID = root.folderID; | ||
537 | child2.type = 5; | ||
538 | child2.version = 5; | ||
539 | _dbPlugin.addInventoryFolder(child2); | ||
540 | |||
541 | InventoryFolderBase child2Child = new InventoryFolderBase(); | ||
542 | child2Child.agentID = _agent_1_id; | ||
543 | child2Child.folderID = LLUUID.Random(); | ||
544 | child2Child.name = "Child 2 child"; | ||
545 | child2Child.parentID = child2.folderID; | ||
546 | child2Child.type = 6; | ||
547 | child2Child.version = 6; | ||
548 | _dbPlugin.addInventoryFolder(child2Child); | ||
549 | |||
550 | InventoryItemBase rootItem = new InventoryItemBase(); | ||
551 | rootItem.assetID = LLUUID.Random(); | ||
552 | rootItem.assetType = _rnd.Next(1, 1000); | ||
553 | rootItem.avatarID = _agent_1_id; | ||
554 | rootItem.creatorsID = LLUUID.Random(); | ||
555 | rootItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
556 | rootItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
557 | rootItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
558 | rootItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
559 | rootItem.inventoryID = LLUUID.Random(); | ||
560 | rootItem.inventoryDescription = "Root item, Description"; | ||
561 | rootItem.inventoryName = "Root item"; | ||
562 | rootItem.invType = _rnd.Next(1, 1000); | ||
563 | rootItem.parentFolderID = root.folderID; | ||
564 | _dbPlugin.addInventoryItem(rootItem); | ||
565 | |||
566 | InventoryItemBase child1Item = new InventoryItemBase(); | ||
567 | child1Item.assetID = LLUUID.Random(); | ||
568 | child1Item.assetType = _rnd.Next(1, 1000); | ||
569 | child1Item.avatarID = _agent_1_id; | ||
570 | child1Item.creatorsID = LLUUID.Random(); | ||
571 | child1Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
572 | child1Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
573 | child1Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
574 | child1Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
575 | child1Item.inventoryID = LLUUID.Random(); | ||
576 | child1Item.inventoryDescription = "child1 item, Description"; | ||
577 | child1Item.inventoryName = "child1 item"; | ||
578 | child1Item.invType = _rnd.Next(1, 1000); | ||
579 | child1Item.parentFolderID = child1.folderID; | ||
580 | _dbPlugin.addInventoryItem(child1Item); | ||
581 | |||
582 | InventoryItemBase child1ChildItem = new InventoryItemBase(); | ||
583 | child1ChildItem.assetID = LLUUID.Random(); | ||
584 | child1ChildItem.assetType = _rnd.Next(1, 1000); | ||
585 | child1ChildItem.avatarID = _agent_1_id; | ||
586 | child1ChildItem.creatorsID = LLUUID.Random(); | ||
587 | child1ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
588 | child1ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
589 | child1ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
590 | child1ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
591 | child1ChildItem.inventoryID = LLUUID.Random(); | ||
592 | child1ChildItem.inventoryDescription = "child1Child item, Description"; | ||
593 | child1ChildItem.inventoryName = "child1Child item"; | ||
594 | child1ChildItem.invType = _rnd.Next(1, 1000); | ||
595 | child1ChildItem.parentFolderID = child1Child.folderID; | ||
596 | _dbPlugin.addInventoryItem(child1ChildItem); | ||
597 | |||
598 | InventoryItemBase child2Item = new InventoryItemBase(); | ||
599 | child2Item.assetID = LLUUID.Random(); | ||
600 | child2Item.assetType = _rnd.Next(1, 1000); | ||
601 | child2Item.avatarID = _agent_1_id; | ||
602 | child2Item.creatorsID = LLUUID.Random(); | ||
603 | child2Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
604 | child2Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
605 | child2Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
606 | child2Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
607 | child2Item.inventoryID = LLUUID.Random(); | ||
608 | child2Item.inventoryDescription = "child2 item, Description"; | ||
609 | child2Item.inventoryName = "child2 item"; | ||
610 | child2Item.invType = _rnd.Next(1, 1000); | ||
611 | child2Item.parentFolderID = child2.folderID; | ||
612 | _dbPlugin.addInventoryItem(child2Item); | ||
613 | |||
614 | InventoryItemBase child2ChildItem = new InventoryItemBase(); | ||
615 | child2ChildItem.assetID = LLUUID.Random(); | ||
616 | child2ChildItem.assetType = _rnd.Next(1, 1000); | ||
617 | child2ChildItem.avatarID = _agent_1_id; | ||
618 | child2ChildItem.creatorsID = LLUUID.Random(); | ||
619 | child2ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
620 | child2ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
621 | child2ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
622 | child2ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
623 | child2ChildItem.inventoryID = LLUUID.Random(); | ||
624 | child2ChildItem.inventoryDescription = "child2Child item, Description"; | ||
625 | child2ChildItem.inventoryName = "child2Child item"; | ||
626 | child2ChildItem.invType = _rnd.Next(1, 1000); | ||
627 | child2ChildItem.parentFolderID = child2Child.folderID; | ||
628 | _dbPlugin.addInventoryItem(child2ChildItem); | ||
629 | |||
630 | // test deletetion of items | ||
631 | |||
632 | _dbPlugin.deleteInventoryItem(rootItem.inventoryID); | ||
633 | _dbPlugin.deleteInventoryItem(child1Item.inventoryID); | ||
634 | _dbPlugin.deleteInventoryItem(child1ChildItem.inventoryID); | ||
635 | _dbPlugin.deleteInventoryItem(child2Item.inventoryID); | ||
636 | _dbPlugin.deleteInventoryItem(child2ChildItem.inventoryID); | ||
637 | |||
638 | InventoryItemBase item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
639 | Assert.IsNull(item); | ||
640 | |||
641 | item = _dbPlugin.getInventoryItem(child1Item.inventoryID); | ||
642 | Assert.IsNull(item); | ||
643 | |||
644 | item = _dbPlugin.getInventoryItem(child1ChildItem.inventoryID); | ||
645 | Assert.IsNull(item); | ||
646 | |||
647 | item = _dbPlugin.getInventoryItem(child2Item.inventoryID); | ||
648 | Assert.IsNull(item); | ||
649 | |||
650 | item = _dbPlugin.getInventoryItem(child2ChildItem.inventoryID); | ||
651 | Assert.IsNull(item); | ||
652 | |||
653 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
654 | } | ||
655 | |||
656 | |||
657 | /// <summary> | ||
658 | /// Test that we can insert a root folder | ||
659 | /// </summary> | ||
660 | [Test] | ||
661 | public void T08_DeleteInventoryWithItems() | ||
662 | { | ||
663 | |||
664 | // Setup inventory | ||
665 | InventoryFolderBase root = new InventoryFolderBase(); | ||
666 | root.agentID = _agent_1_id; | ||
667 | root.folderID = _agent_1_id; | ||
668 | root.name = "Root folder"; | ||
669 | root.parentID = LLUUID.Zero; | ||
670 | root.type = 2; | ||
671 | root.version = 2; | ||
672 | _dbPlugin.addInventoryFolder(root); | ||
673 | |||
674 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
675 | child1.agentID = _agent_1_id; | ||
676 | child1.folderID = LLUUID.Random(); | ||
677 | child1.name = "Child 1"; | ||
678 | child1.parentID = root.folderID; | ||
679 | child1.type = 3; | ||
680 | child1.version = 3; | ||
681 | _dbPlugin.addInventoryFolder(child1); | ||
682 | |||
683 | InventoryFolderBase child1Child = new InventoryFolderBase(); | ||
684 | child1Child.agentID = _agent_1_id; | ||
685 | child1Child.folderID = LLUUID.Random(); | ||
686 | child1Child.name = "Child 1 child"; | ||
687 | child1Child.parentID = child1.folderID; | ||
688 | child1Child.type = 4; | ||
689 | child1Child.version = 4; | ||
690 | _dbPlugin.addInventoryFolder(child1Child); | ||
691 | |||
692 | InventoryFolderBase child2 = new InventoryFolderBase(); | ||
693 | child2.agentID = _agent_1_id; | ||
694 | child2.folderID = LLUUID.Random(); | ||
695 | child2.name = "Child 2"; | ||
696 | child2.parentID = root.folderID; | ||
697 | child2.type = 5; | ||
698 | child2.version = 5; | ||
699 | _dbPlugin.addInventoryFolder(child2); | ||
700 | |||
701 | InventoryFolderBase child2Child = new InventoryFolderBase(); | ||
702 | child2Child.agentID = _agent_1_id; | ||
703 | child2Child.folderID = LLUUID.Random(); | ||
704 | child2Child.name = "Child 2 child"; | ||
705 | child2Child.parentID = child2.folderID; | ||
706 | child2Child.type = 6; | ||
707 | child2Child.version = 6; | ||
708 | _dbPlugin.addInventoryFolder(child2Child); | ||
709 | |||
710 | InventoryItemBase rootItem = new InventoryItemBase(); | ||
711 | rootItem.assetID = LLUUID.Random(); | ||
712 | rootItem.assetType = _rnd.Next(1, 1000); | ||
713 | rootItem.avatarID = _agent_1_id; | ||
714 | rootItem.creatorsID = LLUUID.Random(); | ||
715 | rootItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
716 | rootItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
717 | rootItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
718 | rootItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
719 | rootItem.inventoryID = LLUUID.Random(); | ||
720 | rootItem.inventoryDescription = "Root item, Description"; | ||
721 | rootItem.inventoryName = "Root item"; | ||
722 | rootItem.invType = _rnd.Next(1, 1000); | ||
723 | rootItem.parentFolderID = root.folderID; | ||
724 | _dbPlugin.addInventoryItem(rootItem); | ||
725 | |||
726 | InventoryItemBase child1Item = new InventoryItemBase(); | ||
727 | child1Item.assetID = LLUUID.Random(); | ||
728 | child1Item.assetType = _rnd.Next(1, 1000); | ||
729 | child1Item.avatarID = _agent_1_id; | ||
730 | child1Item.creatorsID = LLUUID.Random(); | ||
731 | child1Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
732 | child1Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
733 | child1Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
734 | child1Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
735 | child1Item.inventoryID = LLUUID.Random(); | ||
736 | child1Item.inventoryDescription = "child1 item, Description"; | ||
737 | child1Item.inventoryName = "child1 item"; | ||
738 | child1Item.invType = _rnd.Next(1, 1000); | ||
739 | child1Item.parentFolderID = child1.folderID; | ||
740 | _dbPlugin.addInventoryItem(child1Item); | ||
741 | |||
742 | InventoryItemBase child1ChildItem = new InventoryItemBase(); | ||
743 | child1ChildItem.assetID = LLUUID.Random(); | ||
744 | child1ChildItem.assetType = _rnd.Next(1, 1000); | ||
745 | child1ChildItem.avatarID = _agent_1_id; | ||
746 | child1ChildItem.creatorsID = LLUUID.Random(); | ||
747 | child1ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
748 | child1ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
749 | child1ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
750 | child1ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
751 | child1ChildItem.inventoryID = LLUUID.Random(); | ||
752 | child1ChildItem.inventoryDescription = "child1Child item, Description"; | ||
753 | child1ChildItem.inventoryName = "child1Child item"; | ||
754 | child1ChildItem.invType = _rnd.Next(1, 1000); | ||
755 | child1ChildItem.parentFolderID = child1Child.folderID; | ||
756 | _dbPlugin.addInventoryItem(child1ChildItem); | ||
757 | |||
758 | InventoryItemBase child2Item = new InventoryItemBase(); | ||
759 | child2Item.assetID = LLUUID.Random(); | ||
760 | child2Item.assetType = _rnd.Next(1, 1000); | ||
761 | child2Item.avatarID = _agent_1_id; | ||
762 | child2Item.creatorsID = LLUUID.Random(); | ||
763 | child2Item.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
764 | child2Item.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
765 | child2Item.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
766 | child2Item.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
767 | child2Item.inventoryID = LLUUID.Random(); | ||
768 | child2Item.inventoryDescription = "child2 item, Description"; | ||
769 | child2Item.inventoryName = "child2 item"; | ||
770 | child2Item.invType = _rnd.Next(1, 1000); | ||
771 | child2Item.parentFolderID = child2.folderID; | ||
772 | _dbPlugin.addInventoryItem(child2Item); | ||
773 | |||
774 | InventoryItemBase child2ChildItem = new InventoryItemBase(); | ||
775 | child2ChildItem.assetID = LLUUID.Random(); | ||
776 | child2ChildItem.assetType = _rnd.Next(1, 1000); | ||
777 | child2ChildItem.avatarID = _agent_1_id; | ||
778 | child2ChildItem.creatorsID = LLUUID.Random(); | ||
779 | child2ChildItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
780 | child2ChildItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
781 | child2ChildItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
782 | child2ChildItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
783 | child2ChildItem.inventoryID = LLUUID.Random(); | ||
784 | child2ChildItem.inventoryDescription = "child2Child item, Description"; | ||
785 | child2ChildItem.inventoryName = "child2Child item"; | ||
786 | child2ChildItem.invType = _rnd.Next(1, 1000); | ||
787 | child2ChildItem.parentFolderID = child2Child.folderID; | ||
788 | _dbPlugin.addInventoryItem(child2ChildItem); | ||
789 | |||
790 | // test deletetion of items | ||
791 | |||
792 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
793 | |||
794 | InventoryItemBase item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
795 | Assert.IsNull(item); | ||
796 | |||
797 | item = _dbPlugin.getInventoryItem(child1Item.inventoryID); | ||
798 | Assert.IsNull(item); | ||
799 | |||
800 | item = _dbPlugin.getInventoryItem(child1ChildItem.inventoryID); | ||
801 | Assert.IsNull(item); | ||
802 | |||
803 | item = _dbPlugin.getInventoryItem(child2Item.inventoryID); | ||
804 | Assert.IsNull(item); | ||
805 | |||
806 | item = _dbPlugin.getInventoryItem(child2ChildItem.inventoryID); | ||
807 | Assert.IsNull(item); | ||
808 | |||
809 | } | ||
810 | |||
811 | /// <summary> | ||
812 | /// Test that we can update items | ||
813 | /// </summary> | ||
814 | [Test] | ||
815 | public void T09_UpdateItem() | ||
816 | { | ||
817 | |||
818 | // Setup inventory | ||
819 | InventoryFolderBase root = new InventoryFolderBase(); | ||
820 | root.agentID = _agent_1_id; | ||
821 | root.folderID = _agent_1_id; | ||
822 | root.name = "Root folder"; | ||
823 | root.parentID = LLUUID.Zero; | ||
824 | root.type = 2; | ||
825 | root.version = 2; | ||
826 | _dbPlugin.addInventoryFolder(root); | ||
827 | |||
828 | InventoryItemBase rootItem = new InventoryItemBase(); | ||
829 | rootItem.assetID = LLUUID.Random(); | ||
830 | rootItem.assetType = _rnd.Next(1, 1000); | ||
831 | rootItem.avatarID = _agent_1_id; | ||
832 | rootItem.creatorsID = LLUUID.Random(); | ||
833 | rootItem.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
834 | rootItem.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
835 | rootItem.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
836 | rootItem.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
837 | rootItem.inventoryID = LLUUID.Random(); | ||
838 | rootItem.inventoryDescription = "Root item, Description"; | ||
839 | rootItem.inventoryName = "Root item"; | ||
840 | rootItem.invType = _rnd.Next(1, 1000); | ||
841 | rootItem.parentFolderID = root.folderID; | ||
842 | _dbPlugin.addInventoryItem(rootItem); | ||
843 | |||
844 | rootItem.assetID = LLUUID.Random(); | ||
845 | _dbPlugin.updateInventoryItem(rootItem); | ||
846 | InventoryItemBase item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
847 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
848 | |||
849 | rootItem.assetType = rootItem.assetType+1; | ||
850 | _dbPlugin.updateInventoryItem(rootItem); | ||
851 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
852 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
853 | |||
854 | rootItem.avatarID = LLUUID.Random(); | ||
855 | _dbPlugin.updateInventoryItem(rootItem); | ||
856 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
857 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
858 | |||
859 | rootItem.creatorsID = LLUUID.Random(); | ||
860 | _dbPlugin.updateInventoryItem(rootItem); | ||
861 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
862 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
863 | |||
864 | rootItem.inventoryBasePermissions = rootItem.inventoryBasePermissions+1; | ||
865 | _dbPlugin.updateInventoryItem(rootItem); | ||
866 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
867 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
868 | |||
869 | rootItem.inventoryCurrentPermissions = rootItem.inventoryCurrentPermissions+1; | ||
870 | _dbPlugin.updateInventoryItem(rootItem); | ||
871 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
872 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
873 | |||
874 | rootItem.inventoryDescription = "New description"; | ||
875 | _dbPlugin.updateInventoryItem(rootItem); | ||
876 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
877 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
878 | |||
879 | rootItem.inventoryEveryOnePermissions = rootItem.inventoryEveryOnePermissions+1; | ||
880 | _dbPlugin.updateInventoryItem(rootItem); | ||
881 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
882 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
883 | |||
884 | rootItem.inventoryName = "New name"; | ||
885 | _dbPlugin.updateInventoryItem(rootItem); | ||
886 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
887 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
888 | |||
889 | rootItem.inventoryNextPermissions = rootItem.inventoryNextPermissions+1; | ||
890 | _dbPlugin.updateInventoryItem(rootItem); | ||
891 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
892 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
893 | |||
894 | rootItem.invType = rootItem.invType+1; | ||
895 | _dbPlugin.updateInventoryItem(rootItem); | ||
896 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
897 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
898 | |||
899 | rootItem.parentFolderID = LLUUID.Zero; | ||
900 | _dbPlugin.updateInventoryItem(rootItem); | ||
901 | item = _dbPlugin.getInventoryItem(rootItem.inventoryID); | ||
902 | Assert.IsTrue(AreItemsIdentical(rootItem, item)); | ||
903 | |||
904 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
905 | _dbPlugin.deleteInventoryItem(rootItem.inventoryID); | ||
906 | } | ||
907 | |||
908 | |||
909 | /// <summary> | ||
910 | /// Test that we can insert a root folder | ||
911 | /// </summary> | ||
912 | [Test] | ||
913 | public void T10_GetListOfItemsInFolder() | ||
914 | { | ||
915 | |||
916 | // Setup inventory | ||
917 | InventoryFolderBase root = new InventoryFolderBase(); | ||
918 | root.agentID = _agent_1_id; | ||
919 | root.folderID = _agent_1_id; | ||
920 | root.name = "Root folder"; | ||
921 | root.parentID = LLUUID.Zero; | ||
922 | root.type = 2; | ||
923 | root.version = 2; | ||
924 | _dbPlugin.addInventoryFolder(root); | ||
925 | |||
926 | InventoryFolderBase child1 = new InventoryFolderBase(); | ||
927 | child1.agentID = _agent_1_id; | ||
928 | child1.folderID = LLUUID.Random(); | ||
929 | child1.name = "Child 1"; | ||
930 | child1.parentID = root.folderID; | ||
931 | child1.type = 3; | ||
932 | child1.version = 3; | ||
933 | _dbPlugin.addInventoryFolder(child1); | ||
934 | |||
935 | InventoryFolderBase child1Child = new InventoryFolderBase(); | ||
936 | child1Child.agentID = _agent_1_id; | ||
937 | child1Child.folderID = LLUUID.Random(); | ||
938 | child1Child.name = "Child 1 child"; | ||
939 | child1Child.parentID = child1.folderID; | ||
940 | child1Child.type = 4; | ||
941 | child1Child.version = 4; | ||
942 | _dbPlugin.addInventoryFolder(child1Child); | ||
943 | |||
944 | |||
945 | InventoryItemBase item1 = new InventoryItemBase(); | ||
946 | item1.assetID = LLUUID.Random(); | ||
947 | item1.assetType = _rnd.Next(1, 1000); | ||
948 | item1.avatarID = _agent_1_id; | ||
949 | item1.creatorsID = LLUUID.Random(); | ||
950 | item1.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
951 | item1.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
952 | item1.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
953 | item1.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
954 | item1.inventoryID = LLUUID.Random(); | ||
955 | item1.inventoryDescription = "Item 1, description"; | ||
956 | item1.inventoryName = "Item 1"; | ||
957 | item1.invType = _rnd.Next(1, 1000); | ||
958 | item1.parentFolderID = child1Child.folderID; | ||
959 | _dbPlugin.addInventoryItem(item1); | ||
960 | |||
961 | InventoryItemBase item2 = new InventoryItemBase(); | ||
962 | item2.assetID = LLUUID.Random(); | ||
963 | item2.assetType = _rnd.Next(1, 1000); | ||
964 | item2.avatarID = _agent_1_id; | ||
965 | item2.creatorsID = LLUUID.Random(); | ||
966 | item2.inventoryBasePermissions = (uint)_rnd.Next(1, 1000000); | ||
967 | item2.inventoryCurrentPermissions = (uint)_rnd.Next(1, 1000000); | ||
968 | item2.inventoryEveryOnePermissions = (uint)_rnd.Next(1, 1000000); | ||
969 | item2.inventoryNextPermissions = (uint)_rnd.Next(1, 1000000); | ||
970 | item2.inventoryID = LLUUID.Random(); | ||
971 | item2.inventoryDescription = "Item 1, description"; | ||
972 | item2.inventoryName = "Item 1"; | ||
973 | item2.invType = _rnd.Next(1, 1000); | ||
974 | item2.parentFolderID = child1Child.folderID; | ||
975 | _dbPlugin.addInventoryItem(item2); | ||
976 | |||
977 | List<InventoryItemBase> items = _dbPlugin.getInventoryInFolder(child1Child.folderID); | ||
978 | Assert.IsNotNull(items); | ||
979 | Assert.IsNotEmpty(items); | ||
980 | |||
981 | bool foundItem1 = false; | ||
982 | bool foundItem2 = false; | ||
983 | |||
984 | foreach (InventoryItemBase i in items) | ||
985 | { | ||
986 | if (i.inventoryID == item1.inventoryID) | ||
987 | { | ||
988 | foundItem1 = true; | ||
989 | Assert.IsTrue(AreItemsIdentical(item1, i)); | ||
990 | } | ||
991 | else if (i.inventoryID == item2.inventoryID) | ||
992 | { | ||
993 | foundItem2 = true; | ||
994 | Assert.IsTrue(AreItemsIdentical(item2, i)); | ||
995 | } | ||
996 | else | ||
997 | { | ||
998 | Assert.Fail("Unknown inventory item found"); | ||
999 | } | ||
1000 | } | ||
1001 | |||
1002 | Assert.IsTrue(foundItem1 && foundItem2, "not all items were returned"); | ||
1003 | _dbPlugin.deleteInventoryFolder(_agent_1_id); | ||
1004 | } | ||
1005 | } | ||
1006 | } | ||