aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data
diff options
context:
space:
mode:
authorAlexRa2010-05-17 15:54:43 +0300
committerAlexRa2010-05-23 11:47:39 +0300
commit7f70ae0ebd686507bc15ac6fc7eeb75ed0b9b64a (patch)
tree8e9893cf02218f72888d5cdb12f8bb8a21cc5698 /OpenSim/Data
parentAdded generic base classes for testing database services (diff)
downloadopensim-SC_OLD-7f70ae0ebd686507bc15ac6fc7eeb75ed0b9b64a.zip
opensim-SC_OLD-7f70ae0ebd686507bc15ac6fc7eeb75ed0b9b64a.tar.gz
opensim-SC_OLD-7f70ae0ebd686507bc15ac6fc7eeb75ed0b9b64a.tar.bz2
opensim-SC_OLD-7f70ae0ebd686507bc15ac6fc7eeb75ed0b9b64a.tar.xz
All data tests made DBMS-independent
Diffstat (limited to 'OpenSim/Data')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLEstateData.cs2
-rw-r--r--OpenSim/Data/MySQL/Tests/MySQLEstateTest.cs116
-rw-r--r--OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs99
-rw-r--r--OpenSim/Data/MySQL/Tests/MySQLRegionTest.cs112
-rw-r--r--OpenSim/Data/SQLite/Tests/SQLiteEstateTest.cs65
-rw-r--r--OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs66
-rw-r--r--OpenSim/Data/SQLite/Tests/SQLiteRegionTest.cs64
-rw-r--r--OpenSim/Data/Tests/EstateTests.cs (renamed from OpenSim/Data/Tests/BasicEstateTest.cs)51
-rw-r--r--OpenSim/Data/Tests/InventoryTests.cs (renamed from OpenSim/Data/Tests/BasicInventoryTest.cs)94
-rw-r--r--OpenSim/Data/Tests/RegionTests.cs (renamed from OpenSim/Data/Tests/BasicRegionTest.cs)101
10 files changed, 160 insertions, 610 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
index 66931e2..80bf106 100644
--- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
@@ -37,7 +37,7 @@ using OpenSim.Region.Framework.Interfaces;
37 37
38namespace OpenSim.Data.MSSQL 38namespace OpenSim.Data.MSSQL
39{ 39{
40 public class MSSQLEstateData : IEstateDataStore 40 public class MSSQLEstateStore : IEstateDataStore
41 { 41 {
42 private const string _migrationStore = "EstateStore"; 42 private const string _migrationStore = "EstateStore";
43 43
diff --git a/OpenSim/Data/MySQL/Tests/MySQLEstateTest.cs b/OpenSim/Data/MySQL/Tests/MySQLEstateTest.cs
deleted file mode 100644
index 01afcae..0000000
--- a/OpenSim/Data/MySQL/Tests/MySQLEstateTest.cs
+++ /dev/null
@@ -1,116 +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 OpenSimulator 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
28using System;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using log4net;
32using System.Reflection;
33using OpenSim.Tests.Common;
34using MySql.Data.MySqlClient;
35
36
37namespace OpenSim.Data.MySQL.Tests
38{
39 [TestFixture, DatabaseTest]
40 public class MySQLEstateTest : BasicEstateTest
41 {
42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
43 public string file;
44 public string connect = "Server=localhost;Port=3306;Database=opensim-nunit;User ID=opensim-nunit;Password=opensim-nunit;Pooling=false;";
45
46 [TestFixtureSetUp]
47 public void Init()
48 {
49 SuperInit();
50 // If we manage to connect to the database with the user
51 // and password above it is our test database, and run
52 // these tests. If anything goes wrong, ignore these
53 // tests.
54 try
55 {
56 // clear db incase to ensure we are in a clean state
57 ClearDB();
58
59 regionDb = new MySQLDataStore();
60 regionDb.Initialise(connect);
61 db = new MySQLEstateStore();
62 db.Initialise(connect);
63 }
64 catch (Exception e)
65 {
66 m_log.Error("Exception {0}", e);
67 Assert.Ignore();
68 }
69 }
70
71 [TestFixtureTearDown]
72 public void Cleanup()
73 {
74 if (regionDb != null)
75 {
76 regionDb.Dispose();
77 }
78 ClearDB();
79 }
80
81 private void ClearDB()
82 {
83 // if a new table is added, it has to be dropped here
84 ExecuteSql("drop table if exists migrations");
85 ExecuteSql("drop table if exists prims");
86 ExecuteSql("drop table if exists primshapes");
87 ExecuteSql("drop table if exists primitems");
88 ExecuteSql("drop table if exists terrain");
89 ExecuteSql("drop table if exists land");
90 ExecuteSql("drop table if exists landaccesslist");
91 ExecuteSql("drop table if exists regionban");
92 ExecuteSql("drop table if exists regionsettings");
93 ExecuteSql("drop table if exists estate_managers");
94 ExecuteSql("drop table if exists estate_groups");
95 ExecuteSql("drop table if exists estate_users");
96 ExecuteSql("drop table if exists estateban");
97 ExecuteSql("drop table if exists estate_settings");
98 ExecuteSql("drop table if exists estate_map");
99 }
100
101 /// <summary>
102 /// Execute a MySqlCommand
103 /// </summary>
104 /// <param name="sql">sql string to execute</param>
105 private void ExecuteSql(string sql)
106 {
107 using (MySqlConnection dbcon = new MySqlConnection(connect))
108 {
109 dbcon.Open();
110
111 MySqlCommand cmd = new MySqlCommand(sql, dbcon);
112 cmd.ExecuteNonQuery();
113 }
114 }
115 }
116}
diff --git a/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs b/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs
deleted file mode 100644
index 4575493..0000000
--- a/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs
+++ /dev/null
@@ -1,99 +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 OpenSimulator 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
28using System;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using log4net;
32using System.Reflection;
33using OpenSim.Tests.Common;
34using MySql.Data.MySqlClient;
35
36
37namespace OpenSim.Data.MySQL.Tests
38{
39 [TestFixture, DatabaseTest]
40 public class MySQLInventoryTest : BasicInventoryTest
41 {
42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
43 public string file;
44 public string connect = "Server=localhost;Port=3306;Database=opensim-nunit;User ID=opensim-nunit;Password=opensim-nunit;Pooling=false;";
45
46 [TestFixtureSetUp]
47 public void Init()
48 {
49 SuperInit();
50 // If we manage to connect to the database with the user
51 // and password above it is our test database, and run
52 // these tests. If anything goes wrong, ignore these
53 // tests.
54 try
55 {
56 DropTables();
57 db = new MySQLInventoryData();
58 db.Initialise(connect);
59 }
60 catch (Exception e)
61 {
62 m_log.Error("Exception {0}", e);
63 Assert.Ignore();
64 }
65 }
66
67 [TestFixtureTearDown]
68 public void Cleanup()
69 {
70 if (db != null)
71 {
72 db.Dispose();
73 }
74 DropTables();
75 }
76
77 private void DropTables()
78 {
79 ExecuteSql("drop table IF EXISTS inventoryitems");
80 ExecuteSql("drop table IF EXISTS inventoryfolders");
81 ExecuteSql("drop table IF EXISTS migrations");
82 }
83
84 /// <summary>
85 /// Execute a MySqlCommand
86 /// </summary>
87 /// <param name="sql">sql string to execute</param>
88 private void ExecuteSql(string sql)
89 {
90 using (MySqlConnection dbcon = new MySqlConnection(connect))
91 {
92 dbcon.Open();
93
94 MySqlCommand cmd = new MySqlCommand(sql, dbcon);
95 cmd.ExecuteNonQuery();
96 }
97 }
98 }
99}
diff --git a/OpenSim/Data/MySQL/Tests/MySQLRegionTest.cs b/OpenSim/Data/MySQL/Tests/MySQLRegionTest.cs
deleted file mode 100644
index e7e57e4..0000000
--- a/OpenSim/Data/MySQL/Tests/MySQLRegionTest.cs
+++ /dev/null
@@ -1,112 +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 OpenSimulator 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
28using System;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using log4net;
32using System.Reflection;
33using OpenSim.Tests.Common;
34using MySql.Data.MySqlClient;
35
36namespace OpenSim.Data.MySQL.Tests
37{
38 [TestFixture, DatabaseTest]
39 public class MySQLRegionTest : BasicRegionTest
40 {
41 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
42 public string file;
43 public string connect = "Server=localhost;Port=3306;Database=opensim-nunit;User ID=opensim-nunit;Password=opensim-nunit;Pooling=false;";
44
45 [TestFixtureSetUp]
46 public void Init()
47 {
48 SuperInit();
49 // If we manage to connect to the database with the user
50 // and password above it is our test database, and run
51 // these tests. If anything goes wrong, ignore these
52 // tests.
53 try
54 {
55 // this is important in case a previous run ended badly
56 ClearDB();
57
58 db = new MySQLDataStore();
59 db.Initialise(connect);
60 }
61 catch (Exception e)
62 {
63 m_log.Error("Exception {0}", e);
64 Assert.Ignore();
65 }
66 }
67
68 [TestFixtureTearDown]
69 public void Cleanup()
70 {
71 if (db != null)
72 {
73 db.Dispose();
74 }
75 ClearDB();
76 }
77
78 private void ClearDB()
79 {
80 ExecuteSql("drop table if exists migrations");
81 ExecuteSql("drop table if exists prims");
82 ExecuteSql("drop table if exists primshapes");
83 ExecuteSql("drop table if exists primitems");
84 ExecuteSql("drop table if exists terrain");
85 ExecuteSql("drop table if exists land");
86 ExecuteSql("drop table if exists landaccesslist");
87 ExecuteSql("drop table if exists regionban");
88 ExecuteSql("drop table if exists regionsettings");
89 ExecuteSql("drop table if exists estate_managers");
90 ExecuteSql("drop table if exists estate_groups");
91 ExecuteSql("drop table if exists estate_users");
92 ExecuteSql("drop table if exists estateban");
93 ExecuteSql("drop table if exists estate_settings");
94 ExecuteSql("drop table if exists estate_map");
95 }
96
97 /// <summary>
98 /// Execute a MySqlCommand
99 /// </summary>
100 /// <param name="sql">sql string to execute</param>
101 private void ExecuteSql(string sql)
102 {
103 using (MySqlConnection dbcon = new MySqlConnection(connect))
104 {
105 dbcon.Open();
106
107 MySqlCommand cmd = new MySqlCommand(sql, dbcon);
108 cmd.ExecuteNonQuery();
109 }
110 }
111 }
112}
diff --git a/OpenSim/Data/SQLite/Tests/SQLiteEstateTest.cs b/OpenSim/Data/SQLite/Tests/SQLiteEstateTest.cs
deleted file mode 100644
index 30f6641..0000000
--- a/OpenSim/Data/SQLite/Tests/SQLiteEstateTest.cs
+++ /dev/null
@@ -1,65 +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 OpenSimulator 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
28using System.IO;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using OpenSim.Tests.Common;
32
33namespace OpenSim.Data.SQLite.Tests
34{
35 [TestFixture, DatabaseTest]
36 public class SQLiteEstateTest : BasicEstateTest
37 {
38 public string file = "regiontest.db";
39 public string connect;
40
41 [TestFixtureSetUp]
42 public void Init()
43 {
44 // SQLite doesn't work on power or z linux
45 if (Directory.Exists("/proc/ppc64") || Directory.Exists("/proc/dasd"))
46 {
47 Assert.Ignore();
48 }
49
50 SuperInit();
51 file = Path.GetTempFileName() + ".db";
52 connect = "URI=file:" + file + ",version=3";
53 db = new SQLiteEstateStore();
54 db.Initialise(connect);
55 regionDb = new SQLiteRegionData();
56 regionDb.Initialise(connect);
57 }
58
59 [TestFixtureTearDown]
60 public void Cleanup()
61 {
62 regionDb.Dispose();
63 }
64 }
65}
diff --git a/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs b/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs
deleted file mode 100644
index 98458a3..0000000
--- a/OpenSim/Data/SQLite/Tests/SQLiteInventoryTest.cs
+++ /dev/null
@@ -1,66 +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 OpenSimulator 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
28using System.IO;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using OpenSim.Tests.Common;
32
33namespace OpenSim.Data.SQLite.Tests
34{
35 [TestFixture, DatabaseTest]
36 public class SQLiteInventoryTest : BasicInventoryTest
37 {
38 public string file;
39 public string connect;
40
41 [TestFixtureSetUp]
42 public void Init()
43 {
44 // SQLite doesn't work on power or z linux
45 if (Directory.Exists("/proc/ppc64") || Directory.Exists("/proc/dasd"))
46 {
47 Assert.Ignore();
48 }
49
50 SuperInit();
51
52 file = Path.GetTempFileName() + ".db";
53 connect = "URI=file:" + file + ",version=3";
54
55 db = new SQLiteInventoryStore();
56 db.Initialise(connect);
57 }
58
59 [TestFixtureTearDown]
60 public void Cleanup()
61 {
62 db.Dispose();
63 File.Delete(file);
64 }
65 }
66}
diff --git a/OpenSim/Data/SQLite/Tests/SQLiteRegionTest.cs b/OpenSim/Data/SQLite/Tests/SQLiteRegionTest.cs
deleted file mode 100644
index abb97cf..0000000
--- a/OpenSim/Data/SQLite/Tests/SQLiteRegionTest.cs
+++ /dev/null
@@ -1,64 +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 OpenSimulator 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
28using System.IO;
29using NUnit.Framework;
30using OpenSim.Data.Tests;
31using OpenSim.Tests.Common;
32
33namespace OpenSim.Data.SQLite.Tests
34{
35 [TestFixture, DatabaseTest]
36 public class SQLiteRegionTest : BasicRegionTest
37 {
38 public string file = "regiontest.db";
39 public string connect;
40
41 [TestFixtureSetUp]
42 public void Init()
43 {
44 // SQLite doesn't work on power or z linux
45 if (Directory.Exists("/proc/ppc64") || Directory.Exists("/proc/dasd"))
46 {
47 Assert.Ignore();
48 }
49
50 SuperInit();
51 file = Path.GetTempFileName() + ".db";
52 connect = "URI=file:" + file + ",version=3";
53 db = new SQLiteRegionData();
54 db.Initialise(connect);
55 }
56
57 [TestFixtureTearDown]
58 public void Cleanup()
59 {
60 db.Dispose();
61 File.Delete(file);
62 }
63 }
64}
diff --git a/OpenSim/Data/Tests/BasicEstateTest.cs b/OpenSim/Data/Tests/EstateTests.cs
index d14d405..7f13925 100644
--- a/OpenSim/Data/Tests/BasicEstateTest.cs
+++ b/OpenSim/Data/Tests/EstateTests.cs
@@ -35,13 +35,31 @@ using OpenSim.Region.Framework.Interfaces;
35using System.Text; 35using System.Text;
36using log4net; 36using log4net;
37using System.Reflection; 37using System.Reflection;
38using System.Data.Common;
39
40
41// DBMS-specific:
42using MySql.Data.MySqlClient;
43using OpenSim.Data.MySQL;
44
45using System.Data.SqlClient;
46using OpenSim.Data.MSSQL;
47
48using Mono.Data.Sqlite;
49using OpenSim.Data.SQLite;
50
38 51
39namespace OpenSim.Data.Tests 52namespace OpenSim.Data.Tests
40{ 53{
41 public class BasicEstateTest 54 [TestFixture(typeof(MySqlConnection), typeof(MySQLEstateStore), Description = "Estate store tests (MySQL)")]
55 [TestFixture(typeof(SqlConnection), typeof(MSSQLEstateStore), Description = "Estate store tests (MS SQL Server)")]
56 [TestFixture(typeof(SqliteConnection), typeof(SQLiteEstateStore), Description = "Estate store tests (SQLite)")]
57
58 public class EstateTests<TConn, TEstateStore> : BasicDataServiceTest<TConn, TEstateStore>
59 where TConn : DbConnection, new()
60 where TEstateStore : class, IEstateDataStore, new()
42 { 61 {
43 public IEstateDataStore db; 62 public IEstateDataStore db;
44 public IRegionDataStore regionDb;
45 63
46 public static UUID REGION_ID = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed7"); 64 public static UUID REGION_ID = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed7");
47 65
@@ -54,9 +72,34 @@ namespace OpenSim.Data.Tests
54 public static UUID GROUP_ID_1 = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed5"); 72 public static UUID GROUP_ID_1 = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed5");
55 public static UUID GROUP_ID_2 = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed6"); 73 public static UUID GROUP_ID_2 = new UUID("250d214e-1c7e-4f9b-a488-87c5e53feed6");
56 74
57 public void SuperInit() 75 protected override void InitService(object service)
76 {
77 db = (IEstateDataStore)service;
78 db.Initialise(m_connStr);
79 ClearDB();
80 }
81
82 private void ClearDB()
58 { 83 {
59 OpenSim.Tests.Common.TestLogging.LogToConsole(); 84 // if a new table is added, it has to be dropped here
85 ExecuteSql("delete from migrations where name='EstateStore';");
86
87 DropTables(
88 "prims",
89 "primshapes",
90 "primitems",
91 "terrain",
92 "land",
93 "landaccesslist",
94 "regionban",
95 "regionsettings",
96 "estate_managers",
97 "estate_groups",
98 "estate_users",
99 "estateban",
100 "estate_settings",
101 "estate_map"
102 );
60 } 103 }
61 104
62 #region 0Tests 105 #region 0Tests
diff --git a/OpenSim/Data/Tests/BasicInventoryTest.cs b/OpenSim/Data/Tests/InventoryTests.cs
index 900186b..876dcf9 100644
--- a/OpenSim/Data/Tests/BasicInventoryTest.cs
+++ b/OpenSim/Data/Tests/InventoryTests.cs
@@ -33,62 +33,70 @@ using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using log4net; 34using log4net;
35using System.Reflection; 35using System.Reflection;
36using System.Data.Common;
37
38// DBMS-specific:
39using MySql.Data.MySqlClient;
40using OpenSim.Data.MySQL;
41
42using System.Data.SqlClient;
43using OpenSim.Data.MSSQL;
44
45using Mono.Data.Sqlite;
46using OpenSim.Data.SQLite;
36 47
37namespace OpenSim.Data.Tests 48namespace OpenSim.Data.Tests
38{ 49{
39 public class BasicInventoryTest 50 [TestFixture(typeof(MySqlConnection), typeof(MySQLInventoryData), Description = "Inventory store tests (MySQL)")]
51 [TestFixture(typeof(SqlConnection), typeof(MSSQLInventoryData), Description = "Inventory store tests (MS SQL Server)")]
52 [TestFixture(typeof(SqliteConnection), typeof(SQLiteInventoryStore), Description = "Inventory store tests (SQLite)")]
53
54 public class InventoryTests<TConn, TInvStore> : BasicDataServiceTest<TConn, TInvStore>
55 where TConn : DbConnection, new()
56 where TInvStore : class, IInventoryDataPlugin, new()
40 { 57 {
41 //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
42 public IInventoryDataPlugin db; 58 public IInventoryDataPlugin db;
59
43 public UUID zero = UUID.Zero; 60 public UUID zero = UUID.Zero;
44 61
45 public UUID folder1; 62 public UUID folder1 = UUID.Random();
46 public UUID folder2; 63 public UUID folder2 = UUID.Random();
47 public UUID folder3; 64 public UUID folder3 = UUID.Random();
48 public UUID owner1; 65 public UUID owner1 = UUID.Random();
49 public UUID owner2; 66 public UUID owner2 = UUID.Random();
50 public UUID owner3; 67 public UUID owner3 = UUID.Random();
51 68
52 public UUID item1; 69 public UUID item1 = UUID.Random();
53 public UUID item2; 70 public UUID item2 = UUID.Random();
54 public UUID item3; 71 public UUID item3 = UUID.Random();
55 public UUID asset1; 72 public UUID asset1 = UUID.Random();
56 public UUID asset2; 73 public UUID asset2 = UUID.Random();
57 public UUID asset3; 74 public UUID asset3 = UUID.Random();
58 75
59 public string name1; 76 public string name1;
60 public string name2; 77 public string name2 = "First Level folder";
61 public string name3; 78 public string name3 = "First Level folder 2";
62 public string niname1; 79 public string niname1 = "My Shirt";
63 public string iname1; 80 public string iname1 = "Shirt";
64 public string iname2; 81 public string iname2 = "Text Board";
65 public string iname3; 82 public string iname3 = "No Pants Barrel";
66 83
67 public void SuperInit() 84 public InventoryTests(string conn) : base(conn)
68 { 85 {
69 OpenSim.Tests.Common.TestLogging.LogToConsole();
70
71 folder1 = UUID.Random();
72 folder2 = UUID.Random();
73 folder3 = UUID.Random();
74 owner1 = UUID.Random();
75 owner2 = UUID.Random();
76 owner3 = UUID.Random();
77 item1 = UUID.Random();
78 item2 = UUID.Random();
79 item3 = UUID.Random();
80 asset1 = UUID.Random();
81 asset2 = UUID.Random();
82 asset3 = UUID.Random();
83
84 name1 = "Root Folder for " + owner1.ToString(); 86 name1 = "Root Folder for " + owner1.ToString();
85 name2 = "First Level folder"; 87 }
86 name3 = "First Level folder 2";
87 niname1 = "My Shirt";
88 iname1 = "Shirt";
89 iname2 = "Text Board";
90 iname3 = "No Pants Barrel";
91 88
89 protected override void InitService(object service)
90 {
91 db = (IInventoryDataPlugin)service;
92 db.Initialise(m_connStr);
93 ClearDB();
94 }
95
96 private void ClearDB()
97 {
98 DropTables("inventoryitems", "inventoryfolders");
99 ExecuteSql("delete from migrations where name='Inventory'");
92 } 100 }
93 101
94 [Test] 102 [Test]
diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/RegionTests.cs
index dfbf522..2a97368 100644
--- a/OpenSim/Data/Tests/BasicRegionTest.cs
+++ b/OpenSim/Data/Tests/RegionTests.cs
@@ -38,59 +38,80 @@ using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 38using OpenSim.Region.Framework.Scenes;
39using log4net; 39using log4net;
40using System.Reflection; 40using System.Reflection;
41using System.Data.Common;
42
43// DBMS-specific:
44using MySql.Data.MySqlClient;
45using OpenSim.Data.MySQL;
46
47using System.Data.SqlClient;
48using OpenSim.Data.MSSQL;
49
50using Mono.Data.Sqlite;
51using OpenSim.Data.SQLite;
41 52
42namespace OpenSim.Data.Tests 53namespace OpenSim.Data.Tests
43{ 54{
44 public class BasicRegionTest 55 [TestFixture(typeof(MySqlConnection), typeof(MySqlRegionData), Description = "Region store tests (MySQL)")]
56 [TestFixture(typeof(SqlConnection), typeof(MSSQLRegionData), Description = "Region store tests (MS SQL Server)")]
57 [TestFixture(typeof(SqliteConnection), typeof(SQLiteRegionData), Description = "Region store tests (SQLite)")]
58
59 public class RegionTests<TConn, TRegStore> : BasicDataServiceTest<TConn, TRegStore>
60 where TConn : DbConnection, new()
61 where TRegStore : class, IRegionDataStore, new()
45 { 62 {
46 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47 public IRegionDataStore db; 63 public IRegionDataStore db;
48 public UUID zero = UUID.Zero; 64 public UUID zero = UUID.Zero;
49 public UUID region1; 65 public UUID region1 = UUID.Random();
50 public UUID region2; 66 public UUID region2 = UUID.Random();
51 public UUID region3; 67 public UUID region3 = UUID.Random();
52 public UUID region4; 68 public UUID region4 = UUID.Random();
53 public UUID prim1; 69 public UUID prim1 = UUID.Random();
54 public UUID prim2; 70 public UUID prim2 = UUID.Random();
55 public UUID prim3; 71 public UUID prim3 = UUID.Random();
56 public UUID prim4; 72 public UUID prim4 = UUID.Random();
57 public UUID prim5; 73 public UUID prim5 = UUID.Random();
58 public UUID prim6; 74 public UUID prim6 = UUID.Random();
59 public UUID item1; 75 public UUID item1 = UUID.Random();
60 public UUID item2; 76 public UUID item2 = UUID.Random();
61 public UUID item3; 77 public UUID item3 = UUID.Random();
62 78
63 public static Random random; 79 public static Random random = new Random();
64 80
65 public string itemname1 = "item1"; 81 public string itemname1 = "item1";
66 82
67 public uint localID; 83 public uint localID = 1;
68 84
69 public double height1; 85 public double height1 = 20;
70 public double height2; 86 public double height2 = 100;
71 87
72 public void SuperInit() 88
89 protected override void InitService(object service)
90 {
91 db = (IRegionDataStore)service;
92 db.Initialise(m_connStr);
93 ClearDB();
94 }
95
96
97 private void ClearDB()
73 { 98 {
74 OpenSim.Tests.Common.TestLogging.LogToConsole(); 99 // if a new table is added, it has to be dropped here
75 100 ExecuteSql("delete from migrations where name='RegionStore';");
76 region1 = UUID.Random(); 101
77 region3 = UUID.Random(); 102 DropTables(
78 region4 = UUID.Random(); 103 "prims",
79 prim1 = UUID.Random(); 104 "primshapes",
80 prim2 = UUID.Random(); 105 "primitems",
81 prim3 = UUID.Random(); 106 "terrain",
82 prim4 = UUID.Random(); 107 "land",
83 prim5 = UUID.Random(); 108 "landaccesslist",
84 prim6 = UUID.Random(); 109 "regionban",
85 item1 = UUID.Random(); 110 "regionsettings"
86 item2 = UUID.Random(); 111 );
87 item3 = UUID.Random();
88 random = new Random();
89 localID = 1;
90 height1 = 20;
91 height2 = 100;
92 } 112 }
93 113
114
94 // Test Plan 115 // Test Plan
95 // Prims 116 // Prims
96 // - empty test - 001 117 // - empty test - 001