Example Test SQLite Assets
From OpenSimulator
An Example Test - SQLite Assets
using System; using System.IO; 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; namespace OpenSim.Data.SQLite.Tests { [TestFixture] public class SQLiteAssetTest { public string file; public string connect; public AssetDataBase db; public UUID uuid1; public UUID uuid2; public UUID uuid3; public string name1; public string name2; public string name3; public byte[] asset1; [TestFixtureSetUp] public void Init() { uuid1 = UUID.Random(); uuid2 = UUID.Random(); uuid3 = UUID.Random(); name1 = "asset one"; name2 = "asset two"; name3 = "asset three"; asset1 = new byte[100]; asset1.Initialize(); file = Path.GetTempFileName() + ".db"; connect = "URI=file:" + file + ",version=3"; db = new SQLiteAssetData(); db.Initialise(connect); } [TestFixtureTearDown] public void Cleanup() { db.Dispose(); System.IO.File.Delete(file); } [Test] public void T001_LoadEmpty() { Assert.That(db.ExistsAsset(uuid1), Is.False); Assert.That(db.ExistsAsset(uuid2), Is.False); Assert.That(db.ExistsAsset(uuid3), Is.False); } [Test] public void T010_StoreSimpleAsset() { AssetBase a1 = new AssetBase(uuid1, name1); AssetBase a2 = new AssetBase(uuid2, name2); AssetBase a3 = new AssetBase(uuid3, name3); a1.Data = asset1; a2.Data = asset1; a3.Data = asset1; db.CreateAsset(a1); db.CreateAsset(a2); db.CreateAsset(a3); AssetBase a1a = db.FetchAsset(uuid1); Assert.That(a1a.ID, Is.EqualTo(uuid1)); Assert.That(a1a.Name, Is.EqualTo(name1)); AssetBase a2a = db.FetchAsset(uuid2); Assert.That(a2a.ID, Is.EqualTo(uuid2)); Assert.That(a2a.Name, Is.EqualTo(name2)); AssetBase a3a = db.FetchAsset(uuid3); Assert.That(a3a.ID, Is.EqualTo(uuid3)); Assert.That(a3a.Name, Is.EqualTo(name3)); } [Test] public void T011_ExistsSimpleAsset() { Assert.That(db.ExistsAsset(uuid1), Is.True); Assert.That(db.ExistsAsset(uuid2), Is.True); Assert.That(db.ExistsAsset(uuid3), Is.True); } } }
You can see 4 of the important annotations here:
- TestFixture - this class is a test suite
- TestFixtureSetup - this code is always run before any of the tests are executed
- TestFixtureTearDown - this code is always run after the tests are done executing, even if they fail.
- Test - this method is a test