diff --git a/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs b/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs index 4bc1b9a9b2..ee6732b85c 100644 --- a/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs +++ b/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs @@ -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; - } } } \ No newline at end of file diff --git a/OpenSim/Data/Tests/BasicInventoryTests.cs b/OpenSim/Data/Tests/BasicInventoryTests.cs new file mode 100644 index 0000000000..47a3393465 --- /dev/null +++ b/OpenSim/Data/Tests/BasicInventoryTests.cs @@ -0,0 +1,184 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; +using OpenSim.Framework; +using OpenSim.Data.Tests; +using OpenSim.Region.Environment.Scenes; +using OpenMetaverse; + +namespace OpenSim.Data.Tests +{ + public class BasicInventoryTest + { + public IInventoryDataPlugin 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; + + public void SuperInit() + { + 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"; + } + + [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; + } + } +} \ No newline at end of file diff --git a/prebuild.xml b/prebuild.xml index dc3e8f640e..fa4b904769 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -228,6 +228,37 @@ + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + + + + + + + + + @@ -1474,6 +1505,7 @@ +