diff options
author | Sean Dague | 2008-09-24 20:43:32 +0000 |
---|---|---|
committer | Sean Dague | 2008-09-24 20:43:32 +0000 |
commit | 639267133562c5d71a988fd222c93275887bcb8f (patch) | |
tree | ff7c5b1471eee391d8cc05687c7148a5dcdb8d3d | |
parent | remove a bunch of out of date inline ALTER table commands that would only (diff) | |
download | opensim-SC-639267133562c5d71a988fd222c93275887bcb8f.zip opensim-SC-639267133562c5d71a988fd222c93275887bcb8f.tar.gz opensim-SC-639267133562c5d71a988fd222c93275887bcb8f.tar.bz2 opensim-SC-639267133562c5d71a988fd222c93275887bcb8f.tar.xz |
let the asset tests run on MySQL. Interesting difference here, the
sqlite driver can handle .Data = Null, the mysql driver can not. We
should decide which is the right behavior and adjust code for it.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLAssetData.cs | 2 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Tests/MySQLAssetTest.cs | 83 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs | 8 | ||||
-rw-r--r-- | OpenSim/Data/Tests/BasicAssetTest.cs | 13 |
4 files changed, 102 insertions, 4 deletions
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index 5c58a4b..e270b9c 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Data.MySQL | |||
40 | /// <summary> | 40 | /// <summary> |
41 | /// A MySQL Interface for the Asset Server | 41 | /// A MySQL Interface for the Asset Server |
42 | /// </summary> | 42 | /// </summary> |
43 | internal class MySQLAssetData : AssetDataBase | 43 | public class MySQLAssetData : AssetDataBase |
44 | { | 44 | { |
45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
diff --git a/OpenSim/Data/MySQL/Tests/MySQLAssetTest.cs b/OpenSim/Data/MySQL/Tests/MySQLAssetTest.cs new file mode 100644 index 0000000..0419e21 --- /dev/null +++ b/OpenSim/Data/MySQL/Tests/MySQLAssetTest.cs | |||
@@ -0,0 +1,83 @@ | |||
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 OpenSim 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 | |||
28 | using System; | ||
29 | using System.IO; | ||
30 | using System.Collections.Generic; | ||
31 | using NUnit.Framework; | ||
32 | using NUnit.Framework.SyntaxHelpers; | ||
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Data.Tests; | ||
35 | using OpenSim.Data.MySQL; | ||
36 | using OpenSim.Region.Environment.Scenes; | ||
37 | using OpenMetaverse; | ||
38 | |||
39 | namespace OpenSim.Data.MySQL.Tests | ||
40 | { | ||
41 | [TestFixture] | ||
42 | public class MySQLAssetTest : BasicAssetTest | ||
43 | { | ||
44 | public string file; | ||
45 | public MySQLManager database; | ||
46 | public string connect = "Server=localhost;Port=3306;Database=opensim-nunit;User ID=opensim-nunit;Password=opensim-nunit;Pooling=false;"; | ||
47 | |||
48 | [TestFixtureSetUp] | ||
49 | public void Init() | ||
50 | { | ||
51 | SuperInit(); | ||
52 | // If we manage to connect to the database with the user | ||
53 | // and password above it is our test database, and run | ||
54 | // these tests. If anything goes wrong, ignore these | ||
55 | // tests. | ||
56 | try | ||
57 | { | ||
58 | database = new MySQLManager(connect); | ||
59 | db = new MySQLAssetData(); | ||
60 | db.Initialise(connect); | ||
61 | } | ||
62 | catch (Exception e) | ||
63 | { | ||
64 | System.Console.WriteLine("Exception {0}", e); | ||
65 | Assert.Ignore(); | ||
66 | } | ||
67 | } | ||
68 | |||
69 | [TestFixtureTearDown] | ||
70 | public void Cleanup() | ||
71 | { | ||
72 | if (db != null) | ||
73 | { | ||
74 | db.Dispose(); | ||
75 | } | ||
76 | if (database != null) | ||
77 | { | ||
78 | database.ExecuteSql("drop table migrations"); | ||
79 | database.ExecuteSql("drop table assets"); | ||
80 | } | ||
81 | } | ||
82 | } | ||
83 | } \ No newline at end of file | ||
diff --git a/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs b/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs index c299452..5e6b7f9 100644 --- a/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs +++ b/OpenSim/Data/MySQL/Tests/MySQLInventoryTest.cs | |||
@@ -50,6 +50,10 @@ namespace OpenSim.Data.MySQL.Tests | |||
50 | public void Init() | 50 | public void Init() |
51 | { | 51 | { |
52 | SuperInit(); | 52 | SuperInit(); |
53 | // If we manage to connect to the database with the user | ||
54 | // and password above it is our test database, and run | ||
55 | // these tests. If anything goes wrong, ignore these | ||
56 | // tests. | ||
53 | try | 57 | try |
54 | { | 58 | { |
55 | database = new MySQLManager(connect); | 59 | database = new MySQLManager(connect); |
@@ -66,6 +70,10 @@ namespace OpenSim.Data.MySQL.Tests | |||
66 | [TestFixtureTearDown] | 70 | [TestFixtureTearDown] |
67 | public void Cleanup() | 71 | public void Cleanup() |
68 | { | 72 | { |
73 | if (db != null) | ||
74 | { | ||
75 | db.Dispose(); | ||
76 | } | ||
69 | if (database != null) | 77 | if (database != null) |
70 | { | 78 | { |
71 | database.ExecuteSql("drop table migrations"); | 79 | database.ExecuteSql("drop table migrations"); |
diff --git a/OpenSim/Data/Tests/BasicAssetTest.cs b/OpenSim/Data/Tests/BasicAssetTest.cs index 89b86eb..53c9379 100644 --- a/OpenSim/Data/Tests/BasicAssetTest.cs +++ b/OpenSim/Data/Tests/BasicAssetTest.cs | |||
@@ -42,6 +42,7 @@ namespace OpenSim.Data.Tests | |||
42 | public UUID uuid1; | 42 | public UUID uuid1; |
43 | public UUID uuid2; | 43 | public UUID uuid2; |
44 | public UUID uuid3; | 44 | public UUID uuid3; |
45 | public byte[] asset1; | ||
45 | 46 | ||
46 | public void SuperInit() | 47 | public void SuperInit() |
47 | { | 48 | { |
@@ -57,6 +58,8 @@ namespace OpenSim.Data.Tests | |||
57 | uuid1 = UUID.Random(); | 58 | uuid1 = UUID.Random(); |
58 | uuid2 = UUID.Random(); | 59 | uuid2 = UUID.Random(); |
59 | uuid3 = UUID.Random(); | 60 | uuid3 = UUID.Random(); |
61 | asset1 = new byte[100]; | ||
62 | asset1.Initialize(); | ||
60 | } | 63 | } |
61 | 64 | ||
62 | [Test] | 65 | [Test] |
@@ -73,21 +76,25 @@ namespace OpenSim.Data.Tests | |||
73 | AssetBase a1 = new AssetBase(uuid1, "asset one"); | 76 | AssetBase a1 = new AssetBase(uuid1, "asset one"); |
74 | AssetBase a2 = new AssetBase(uuid2, "asset two"); | 77 | AssetBase a2 = new AssetBase(uuid2, "asset two"); |
75 | AssetBase a3 = new AssetBase(uuid3, "asset three"); | 78 | AssetBase a3 = new AssetBase(uuid3, "asset three"); |
79 | a1.Data = asset1; | ||
80 | a2.Data = asset1; | ||
81 | a3.Data = asset1; | ||
82 | |||
76 | db.CreateAsset(a1); | 83 | db.CreateAsset(a1); |
77 | db.CreateAsset(a2); | 84 | db.CreateAsset(a2); |
78 | db.CreateAsset(a3); | 85 | db.CreateAsset(a3); |
79 | 86 | ||
80 | AssetBase a1a = db.FetchAsset(uuid1); | 87 | AssetBase a1a = db.FetchAsset(uuid1); |
81 | Assert.That(a1.ID, Is.EqualTo(a1a.ID)); | 88 | Assert.That(a1.ID, Is.EqualTo(a1a.ID)); |
82 | Assert.That(a1.Name, Text.Matches(a1a.Name)); | 89 | Assert.That(a1.Name, Is.EqualTo(a1a.Name)); |
83 | 90 | ||
84 | AssetBase a2a = db.FetchAsset(uuid2); | 91 | AssetBase a2a = db.FetchAsset(uuid2); |
85 | Assert.That(a2.ID, Is.EqualTo(a2a.ID)); | 92 | Assert.That(a2.ID, Is.EqualTo(a2a.ID)); |
86 | Assert.That(a2.Name, Text.Matches(a2a.Name)); | 93 | Assert.That(a2.Name, Is.EqualTo(a2a.Name)); |
87 | 94 | ||
88 | AssetBase a3a = db.FetchAsset(uuid3); | 95 | AssetBase a3a = db.FetchAsset(uuid3); |
89 | Assert.That(a3.ID, Is.EqualTo(a3a.ID)); | 96 | Assert.That(a3.ID, Is.EqualTo(a3a.ID)); |
90 | Assert.That(a3.Name, Text.Matches(a3a.Name)); | 97 | Assert.That(a3.Name, Is.EqualTo(a3a.Name)); |
91 | } | 98 | } |
92 | 99 | ||
93 | [Test] | 100 | [Test] |