mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 17:05:55 +08:00
be more clever and move the bulk of the db tests for inventory into
OpenSim.Data.Tests, then subclass with custom init bits for sqlite. As I've only been testing the plugin interfaces anyway, this should make it very easy to write only a little bit of code to use these tests for other databases. It will also give us the framework for definining the datastore behavior and making sure that all the databases do the same thing.
This commit is contained in:
@@ -30,6 +30,7 @@ using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using NUnit.Framework.SyntaxHelpers;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Data.Tests;
|
||||
using OpenSim.Data.SQLite;
|
||||
using OpenSim.Region.Environment.Scenes;
|
||||
using OpenMetaverse;
|
||||
@@ -37,38 +38,18 @@ using OpenMetaverse;
|
||||
namespace OpenSim.Data.SQLite.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class SQLiteInventoryTest
|
||||
public class SQLiteInventoryTest : BasicInventoryTest
|
||||
{
|
||||
public string file = "inventorytest.db";
|
||||
public string connect;
|
||||
public SQLiteInventoryStore db;
|
||||
public UUID zero = UUID.Zero;
|
||||
public UUID uuid1;
|
||||
public UUID uuid2;
|
||||
public UUID uuid3;
|
||||
public UUID owner1;
|
||||
public UUID owner2;
|
||||
public UUID owner3;
|
||||
public string name1;
|
||||
public string name2;
|
||||
public string name3;
|
||||
|
||||
|
||||
[TestFixtureSetUp]
|
||||
public void Init()
|
||||
{
|
||||
SuperInit();
|
||||
connect = "URI=file:" + file + ",version=3";
|
||||
db = new SQLiteInventoryStore();
|
||||
db.Initialise(connect);
|
||||
uuid1 = UUID.Random();
|
||||
uuid2 = UUID.Random();
|
||||
uuid3 = UUID.Random();
|
||||
owner1 = UUID.Random();
|
||||
owner2 = UUID.Random();
|
||||
owner3 = UUID.Random();
|
||||
name1 = "Root Folder for " + owner1.ToString();
|
||||
name2 = "First Level folder";
|
||||
name3 = "First Level folder 2";
|
||||
}
|
||||
|
||||
[TestFixtureTearDown]
|
||||
@@ -76,123 +57,5 @@ namespace OpenSim.Data.SQLite.Tests
|
||||
{
|
||||
System.IO.File.Delete(file);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void T001_LoadEmpty()
|
||||
{
|
||||
Assert.That(db.getInventoryItem(uuid1), Is.Null);
|
||||
Assert.That(db.getUserRootFolder(owner1), Is.Null);
|
||||
}
|
||||
|
||||
// 01x - folder tests
|
||||
[Test]
|
||||
public void T010_FolderNonParent()
|
||||
{
|
||||
InventoryFolderBase f1 = NewFolder(uuid2, uuid1, owner1, name2);
|
||||
// the folder will go in
|
||||
db.addInventoryFolder(f1);
|
||||
InventoryFolderBase f1a = db.getUserRootFolder(owner1);
|
||||
Assert.That(f1a, Is.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void T011_FolderCreate()
|
||||
{
|
||||
InventoryFolderBase f1 = NewFolder(uuid1, zero, owner1, name1);
|
||||
// TODO: this is probably wrong behavior, but is what we have
|
||||
// db.updateInventoryFolder(f1);
|
||||
// InventoryFolderBase f1a = db.getUserRootFolder(owner1);
|
||||
// Assert.That(uuid1, Is.EqualTo(f1a.ID))
|
||||
// Assert.That(name1, Text.Matches(f1a.Name));
|
||||
// Assert.That(db.getUserRootFolder(owner1), Is.Null);
|
||||
|
||||
// succeed with true
|
||||
db.addInventoryFolder(f1);
|
||||
InventoryFolderBase f1a = db.getUserRootFolder(owner1);
|
||||
Assert.That(uuid1, Is.EqualTo(f1a.ID));
|
||||
Assert.That(name1, Text.Matches(f1a.Name));
|
||||
}
|
||||
|
||||
// we now have the following tree
|
||||
// uuid1
|
||||
// +--- uuid2
|
||||
// +--- uuid3
|
||||
|
||||
[Test]
|
||||
public void T012_FolderList()
|
||||
{
|
||||
InventoryFolderBase f2 = NewFolder(uuid3, uuid1, owner1, name3);
|
||||
db.addInventoryFolder(f2);
|
||||
|
||||
Assert.That(db.getInventoryFolders(zero).Count, Is.EqualTo(1));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid1).Count, Is.EqualTo(2));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid2).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid3).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getInventoryFolders(UUID.Random()).Count, Is.EqualTo(0));
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void T013_FolderHierarchy()
|
||||
{
|
||||
Assert.That(db.getFolderHierarchy(zero).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid1).Count, Is.EqualTo(2));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid2).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid3).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(UUID.Random()).Count, Is.EqualTo(0));
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void T014_MoveFolder()
|
||||
{
|
||||
InventoryFolderBase f2 = db.getInventoryFolder(uuid2);
|
||||
f2.ParentID = uuid3;
|
||||
db.moveInventoryFolder(f2);
|
||||
|
||||
Assert.That(db.getInventoryFolders(zero).Count, Is.EqualTo(1));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid1).Count, Is.EqualTo(1));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid2).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getInventoryFolders(uuid3).Count, Is.EqualTo(1));
|
||||
|
||||
Assert.That(db.getInventoryFolders(UUID.Random()).Count, Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void T015_FolderHierarchy()
|
||||
{
|
||||
Assert.That(db.getFolderHierarchy(zero).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid1).Count, Is.EqualTo(2));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid2).Count, Is.EqualTo(0));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(uuid3).Count, Is.EqualTo(1));
|
||||
|
||||
Assert.That(db.getFolderHierarchy(UUID.Random()).Count, Is.EqualTo(0));
|
||||
}
|
||||
|
||||
|
||||
|
||||
private InventoryFolderBase NewFolder(UUID id, UUID parent, UUID owner, string name)
|
||||
{
|
||||
InventoryFolderBase f = new InventoryFolderBase();
|
||||
f.ID = id;
|
||||
f.ParentID = parent;
|
||||
f.Owner = owner;
|
||||
f.Name = name;
|
||||
return f;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user