Thank you kindly, TLaukkan (Tommil) for a patch that:

* Created value object for EstateRegionLink for storing the estate region relationship.
* Refactored slightly NHibernateManager and NHibernateXXXXData implementations for accesing nhibernate generated ID on insert.
** Changed NHibernateManager.Save method name to Insert as it does Insert.
** Changed NHibernateManager.Save return value object as ID can be both UUID and uint currently.
** Changed NHibernateManager.Load method Id parameter to object as it can be both UUID and uint.
* Created NHibernateEstateData implementation. This is the actual estate storage.
* Created NHibernate mapping files for both EstateSettings and EstateRegionLink
* Created MigrationSyntaxDifferences.txt files to write notes about differences in migration scripts between different databases.
* Created estate storage migration scripts for all four databases.
* Created estate unit test classes for all four databases.
* Updated one missing field to BasicEstateTest.cs
* Tested NHibernate unit tests with NUnit GUI. Asset databases fail but that is not related to this patch.
* Tested build with both Visual Studio and nant.
* Executed build tests with nant succesfully.
This commit is contained in:
Charles Krinke
2009-02-14 19:47:02 +00:00
parent 67b0ba71da
commit a583d8ad70
20 changed files with 803 additions and 57 deletions

View File

@@ -0,0 +1,78 @@
/*
* 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.IO;
using NUnit.Framework;
using OpenSim.Data.Tests;
namespace OpenSim.Data.NHibernate.Tests
{
[TestFixture]
public class NHibernateSQLiteEstateTest : BasicEstateTest
{
public string file;
public NHibernateManager database;
[TestFixtureSetUp]
public void Init()
{
SuperInit();
// If we manage to connect to the database with the user
// and password above it is our test database, and run
// these tests. If anything goes wrong, ignore these
// tests.
try
{
string connect = "SQLiteDialect;SQLite20Driver;Data Source=" + Path.GetTempFileName() + ".db;Version=3";
db = new NHibernateEstateData();
db.Initialise(connect);
database = ((NHibernateEstateData)db).manager;
}
catch (Exception e)
{
Console.WriteLine("Exception {0}", e);
Assert.Ignore();
}
}
[TestFixtureTearDown]
public void Cleanup()
{
if (db != null)
{
((NHibernateEstateData)db).Dispose();
}
if (database != null)
{
database.DropSchema();
}
}
}
}