diff --git a/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs b/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
index fdc20dd698..0402883794 100644
--- a/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
+++ b/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
@@ -54,6 +54,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo nonExistingUserInfo;
TestCommunicationsManager commsManager = new TestCommunicationsManager();
+ Scene myScene = SceneSetupHelpers.SetupScene(commsManager, "");
// Check we can't retrieve info before it exists by uuid
nonExistingUserInfo = commsManager.UserProfileCacheService.GetUserDetails(userId);
@@ -116,7 +117,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
@@ -132,7 +133,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
@@ -154,7 +155,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
@@ -190,7 +191,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
@@ -256,7 +257,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
@@ -297,7 +298,7 @@ namespace OpenSim.Framework.Communications.Tests
TestHelper.InMethod();
//log4net.Config.XmlConfigurator.Configure();
- Scene myScene = SceneSetupHelpers.SetupScene();
+ Scene myScene = SceneSetupHelpers.SetupScene("inventory");
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager);
for (int i = 0 ; i < 50 ; i++)
{
diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
index 47e029364e..9e181f34c5 100644
--- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
+++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
@@ -36,6 +36,7 @@ using Nwc.XmlRpc;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Services;
using OpenSim.Region.Communications.Local;
+using OpenSim.Tests.Common.Setup;
using OpenSim.Tests.Common.Mock;
using OpenSim.Client.Linden;
using OpenSim.Tests.Common;
@@ -57,11 +58,12 @@ namespace OpenSim.Framework.Communications.Tests
private string m_regionExternalName = "localhost";
private IPEndPoint m_capsEndPoint;
- private CommunicationsManager m_commsManager;
+ private TestCommunicationsManager m_commsManager;
private TestLoginToRegionConnector m_regionConnector;
private LocalUserServices m_localUserServices;
private LoginService m_loginService;
private UserProfileData m_userProfileData;
+ private TestScene m_testScene;
[SetUp]
public void SetUpLoginEnviroment()
@@ -69,13 +71,16 @@ namespace OpenSim.Framework.Communications.Tests
m_capsEndPoint = new IPEndPoint(IPAddress.Loopback, 9123);
m_commsManager = new TestCommunicationsManager(new NetworkServersInfo(42, 43));
m_regionConnector = new TestLoginToRegionConnector();
+ m_testScene = SceneSetupHelpers.SetupScene(m_commsManager, "");
m_regionConnector.AddRegion(new RegionInfo(42, 43, m_capsEndPoint, m_regionExternalName));
+ //IInventoryService m_inventoryService = new TestInventoryService();
+
m_localUserServices = (LocalUserServices) m_commsManager.UserService;
m_localUserServices.AddUser(m_firstName,m_lastName,"boingboing","abc@ftw.com",42,43);
- m_loginService = new LLStandaloneLoginService((UserManagerBase) m_localUserServices, "Hello folks", new TestInventoryService(),
+ m_loginService = new LLStandaloneLoginService((UserManagerBase) m_localUserServices, "Hello folks", m_testScene.InventoryService,
m_commsManager.NetworkServersInfo, true, new LibraryRootFolder(String.Empty), m_regionConnector);
m_userProfileData = m_localUserServices.GetUserProfile(m_firstName, m_lastName);
@@ -442,123 +447,4 @@ namespace OpenSim.Framework.Communications.Tests
#endregion
}
}
-
- class TestInventoryService : IInventoryService
- {
- public TestInventoryService()
- {
- }
-
- ///
- ///
- ///
- ///
- ///
- public bool CreateUserInventory(UUID userId)
- {
- return false;
- }
-
- ///
- ///
- ///
- ///
- ///
- public List GetInventorySkeleton(UUID userId)
- {
- List folders = new List();
- InventoryFolderBase folder = new InventoryFolderBase();
- folder.ID = UUID.Random();
- folder.Owner = userId;
- folders.Add(folder);
- return folders;
- }
-
- ///
- /// Returns a list of all the active gestures in a user's inventory.
- ///
- ///
- /// The of the user
- ///
- ///
- /// A flat list of the gesture items.
- ///
- public List GetActiveGestures(UUID userId)
- {
- return null;
- }
-
- public InventoryCollection GetUserInventory(UUID userID)
- {
- return null;
- }
-
- public void GetUserInventory(UUID userID, OpenSim.Services.Interfaces.InventoryReceiptCallback callback)
- {
- }
-
- public List GetFolderItems(UUID userID, UUID folderID)
- {
- return null;
- }
-
- public bool AddFolder(InventoryFolderBase folder)
- {
- return false;
- }
-
- public bool UpdateFolder(InventoryFolderBase folder)
- {
- return false;
- }
-
- public bool MoveFolder(InventoryFolderBase folder)
- {
- return false;
- }
-
- public bool PurgeFolder(InventoryFolderBase folder)
- {
- return false;
- }
-
- public bool AddItem(InventoryItemBase item)
- {
- return false;
- }
-
- public bool UpdateItem(InventoryItemBase item)
- {
- return false;
- }
-
- public bool DeleteItem(InventoryItemBase item)
- {
- return false;
- }
-
- public InventoryItemBase QueryItem(InventoryItemBase item)
- {
- return null;
- }
-
- public InventoryFolderBase QueryFolder(InventoryFolderBase folder)
- {
- return null;
- }
-
- public bool HasInventoryForUser(UUID userID)
- {
- return false;
- }
-
- public InventoryFolderBase RequestRootFolder(UUID userID)
- {
- InventoryFolderBase root = new InventoryFolderBase();
- root.ID = UUID.Random();
- root.Owner = userID;
- root.ParentID = UUID.Zero;
- return root;
- }
- }
}
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index bd5d0e37e3..b9044ebe55 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -698,7 +698,7 @@ namespace OpenSim.Framework.Communications
if (rootfolder != null)
userProf.RootInventoryFolderID = rootfolder.ID;
}
- else if (m_commsManager.InterServiceInventoryService != null)
+ else
{
// used by the user server
m_log.Debug("[USERSTORAGE]: using m_commsManager.InterServiceInventoryService to create user's inventory");
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 12d3e9507f..148051210e 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -74,7 +74,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
InventoryArchiverModule archiverModule = new InventoryArchiverModule();
- Scene scene = SceneSetupHelpers.SetupScene(false);
+ Scene scene = SceneSetupHelpers.SetupScene("");
SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
CommunicationsManager cm = scene.CommsManager;
@@ -363,7 +363,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
public void TestReplicateArchivePathToUserInventory()
{
TestHelper.InMethod();
- Scene scene = SceneSetupHelpers.SetupScene(false);
+ Scene scene = SceneSetupHelpers.SetupScene("");
CommunicationsManager commsManager = scene.CommsManager;
CachedUserInfo userInfo = UserProfileTestUtils.CreateUserWithInventory(commsManager);
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index ed280c8dc7..5c42e946a1 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -87,7 +87,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule();
- Scene scene = SceneSetupHelpers.SetupScene(false);
+ Scene scene = SceneSetupHelpers.SetupScene("asset");
SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
SceneObjectPart part1;
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
index c894d8e2be..373b6ab3f3 100644
--- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
+++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
@@ -237,7 +237,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
public void Init()
{
m_serialiserModule = new SerialiserModule();
- m_scene = SceneSetupHelpers.SetupScene(false);
+ m_scene = SceneSetupHelpers.SetupScene("");
SceneSetupHelpers.SetupSceneModules(m_scene, m_serialiserModule);
}
diff --git a/OpenSim/Tests/Common/Mock/TestAssetService.cs b/OpenSim/Tests/Common/Mock/TestAssetService.cs
index d35e3ed127..5f1184bd96 100644
--- a/OpenSim/Tests/Common/Mock/TestAssetService.cs
+++ b/OpenSim/Tests/Common/Mock/TestAssetService.cs
@@ -31,13 +31,18 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Data;
using OpenSim.Services.Interfaces;
+using Nini.Config;
namespace OpenSim.Tests.Common.Mock
{
public class TestAssetService : IAssetService
{
- private readonly Dictionary Assets = new Dictionary();
-
+ private readonly Dictionary Assets = new Dictionary();
+
+ public TestAssetService(IConfigSource config)
+ {
+ }
+
public AssetBase Get(string id)
{
return Assets[ id ];
diff --git a/OpenSim/Tests/Common/Mock/TestInventoryService.cs b/OpenSim/Tests/Common/Mock/TestInventoryService.cs
new file mode 100644
index 0000000000..cf1a3a965d
--- /dev/null
+++ b/OpenSim/Tests/Common/Mock/TestInventoryService.cs
@@ -0,0 +1,133 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenSim.Framework;
+using OpenMetaverse;
+using OpenSim.Services.Interfaces;
+using Nini.Config;
+
+namespace OpenSim.Tests.Common.Mock
+{
+ public class TestInventoryService : IInventoryService
+ {
+ public TestInventoryService()
+ {
+ }
+
+ public TestInventoryService(IConfigSource config)
+ {
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool CreateUserInventory(UUID userId)
+ {
+ return false;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public List GetInventorySkeleton(UUID userId)
+ {
+ List folders = new List();
+ InventoryFolderBase folder = new InventoryFolderBase();
+ folder.ID = UUID.Random();
+ folder.Owner = userId;
+ folders.Add(folder);
+ return folders;
+ }
+
+ ///
+ /// Returns a list of all the active gestures in a user's inventory.
+ ///
+ ///
+ /// The of the user
+ ///
+ ///
+ /// A flat list of the gesture items.
+ ///
+ public List GetActiveGestures(UUID userId)
+ {
+ return null;
+ }
+
+ public InventoryCollection GetUserInventory(UUID userID)
+ {
+ return null;
+ }
+
+ public void GetUserInventory(UUID userID, OpenSim.Services.Interfaces.InventoryReceiptCallback callback)
+ {
+ }
+
+ public List GetFolderItems(UUID userID, UUID folderID)
+ {
+ return null;
+ }
+
+ public bool AddFolder(InventoryFolderBase folder)
+ {
+ return false;
+ }
+
+ public bool UpdateFolder(InventoryFolderBase folder)
+ {
+ return false;
+ }
+
+ public bool MoveFolder(InventoryFolderBase folder)
+ {
+ return false;
+ }
+
+ public bool PurgeFolder(InventoryFolderBase folder)
+ {
+ return false;
+ }
+
+ public bool AddItem(InventoryItemBase item)
+ {
+ return false;
+ }
+
+ public bool UpdateItem(InventoryItemBase item)
+ {
+ return false;
+ }
+
+ public bool DeleteItem(InventoryItemBase item)
+ {
+ return false;
+ }
+
+ public InventoryItemBase QueryItem(InventoryItemBase item)
+ {
+ return null;
+ }
+
+ public InventoryFolderBase QueryFolder(InventoryFolderBase folder)
+ {
+ return null;
+ }
+
+ public bool HasInventoryForUser(UUID userID)
+ {
+ return false;
+ }
+
+ public InventoryFolderBase RequestRootFolder(UUID userID)
+ {
+ InventoryFolderBase root = new InventoryFolderBase();
+ root.ID = UUID.Random();
+ root.Owner = userID;
+ root.ParentID = UUID.Zero;
+ return root;
+ }
+ }
+}
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
index c11691fa32..fbe0e4656a 100644
--- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
+++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
@@ -54,6 +54,10 @@ namespace OpenSim.Tests.Common.Setup
///
public class SceneSetupHelpers
{
+ private static ISharedRegionModule m_assetService = null;
+ private static ISharedRegionModule m_inventoryService = null;
+ private static TestCommunicationsManager commsManager = null;
+
///
/// Set up a test scene
///
@@ -63,7 +67,7 @@ namespace OpenSim.Tests.Common.Setup
///
public static TestScene SetupScene()
{
- return SetupScene(true);
+ return SetupScene("");
}
///
@@ -72,12 +76,17 @@ namespace OpenSim.Tests.Common.Setup
///
/// Start associated service threads for the scene
///
- public static TestScene SetupScene(bool startServices)
+ public static TestScene SetupScene(String realServices)
{
return SetupScene(
- "Unit test region", UUID.Random(), 1000, 1000, new TestCommunicationsManager(), startServices);
+ "Unit test region", UUID.Random(), 1000, 1000, new TestCommunicationsManager(), realServices);
+ }
+
+ public static TestScene SetupScene(TestCommunicationsManager cm, String realServices)
+ {
+ return SetupScene(
+ "Unit test region", UUID.Random(), 1000, 1000, cm, "");
}
-
///
/// Set up a test scene
///
@@ -89,28 +98,35 @@ namespace OpenSim.Tests.Common.Setup
///
public static TestScene SetupScene(string name, UUID id, uint x, uint y, TestCommunicationsManager cm)
{
- return SetupScene(name, id, x, y, cm, true);
+ return SetupScene(name, id, x, y, cm, "");
}
///
- /// Set up a test scene
+ /// Set up a scene.
///
/// Name of the region
/// ID of the region
/// X co-ordinate of the region
/// Y co-ordinate of the region
/// This should be the same if simulating two scenes within a standalone
- /// Start associated threads for the services used by the scene
+ /// Starts real inventory and asset services, as opposed to mock ones, if true
///
public static TestScene SetupScene(
- string name, UUID id, uint x, uint y, TestCommunicationsManager cm, bool startServices)
+ string name, UUID id, uint x, uint y, TestCommunicationsManager cm, String realServices)
{
+ bool newScene= false;
+
Console.WriteLine("Setting up test scene {0}", name);
+ if (cm == null || cm != commsManager)
+ {
+ System.Console.WriteLine("Starting a brand new scene");
+ newScene = true;
+ MainConsole.Instance = new LocalConsole("TEST PROMPT");
+ MainServer.Instance = new BaseHttpServer(980);
+ commsManager = cm;
+ }
// We must set up a console otherwise setup of some modules may fail
- MainConsole.Instance = new LocalConsole("TEST PROMPT");
-
- MainServer.Instance = new BaseHttpServer(980);
RegionInfo regInfo = new RegionInfo(x, y, new IPEndPoint(IPAddress.Loopback, 9000), "127.0.0.1");
regInfo.RegionName = name;
regInfo.RegionID = id;
@@ -132,33 +148,31 @@ namespace OpenSim.Tests.Common.Setup
IRegionModule godsModule = new GodsModule();
godsModule.Initialise(testScene, new IniConfigSource());
testScene.AddModule(godsModule.Name, godsModule);
-
- ISharedRegionModule assetService = new LocalAssetServicesConnector();
+ realServices = realServices.ToLower();
IniConfigSource config = new IniConfigSource();
- config.AddConfig("Modules");
- config.AddConfig("AssetService");
- config.Configs["Modules"].Set("AssetServices", "LocalAssetServicesConnector");
- config.Configs["AssetService"].Set("LocalServiceModule", "OpenSim.Services.AssetService.dll:AssetService");
- config.Configs["AssetService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
- assetService.Initialise(config);
- assetService.AddRegion(testScene);
- assetService.RegionLoaded(testScene);
- testScene.AddRegionModule(assetService.Name, assetService);
- assetService.PostInitialise();
+ if ((m_assetService == null && m_inventoryService == null) || newScene)
+ {
+ if (realServices.Contains("asset"))
+ StartAssetService(testScene, true);
+ else
+ StartAssetService(testScene, false);
+ if (realServices.Contains("inventory"))
+ StartInventoryService(testScene, true);
+ else
+ StartInventoryService(testScene, false);
+ }
+ else
+ {
+ m_assetService.AddRegion(testScene);
+ m_assetService.RegionLoaded(testScene);
+ m_inventoryService.AddRegion(testScene);
+ m_inventoryService.RegionLoaded(testScene);
+ }
+ m_inventoryService.PostInitialise();
+ m_assetService.PostInitialise();
+
+ testScene.CommsManager.UserService.SetInventoryService(testScene.InventoryService);
- ISharedRegionModule inventoryService = new LocalInventoryServicesConnector();
- config = new IniConfigSource();
- config.AddConfig("Modules");
- config.AddConfig("InventoryService");
- config.Configs["Modules"].Set("InventoryServices", "LocalInventoryServicesConnector");
- config.Configs["InventoryService"].Set("LocalServiceModule", "OpenSim.Services.InventoryService.dll:InventoryService");
- config.Configs["InventoryService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
- inventoryService.Initialise(config);
- inventoryService.AddRegion(testScene);
- inventoryService.RegionLoaded(testScene);
- testScene.AddRegionModule(inventoryService.Name, inventoryService);
- inventoryService.PostInitialise();
-
testScene.SetModuleInterfaces();
testScene.LandChannel = new TestLandChannel();
@@ -168,10 +182,48 @@ namespace OpenSim.Tests.Common.Setup
physicsPluginManager.LoadPluginsFromAssembly("Physics/OpenSim.Region.Physics.BasicPhysicsPlugin.dll");
testScene.PhysicsScene
= physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", configSource, "test");
-
+
return testScene;
}
+ private static void StartAssetService(Scene testScene, bool real)
+ {
+ ISharedRegionModule assetService = new LocalAssetServicesConnector();
+ IniConfigSource config = new IniConfigSource();
+ config.AddConfig("Modules");
+ config.AddConfig("AssetService");
+ config.Configs["Modules"].Set("AssetServices", "LocalAssetServicesConnector");
+ if (real)
+ config.Configs["AssetService"].Set("LocalServiceModule", "OpenSim.Services.AssetService.dll:AssetService");
+ else
+ config.Configs["AssetService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:TestAssetService");
+ config.Configs["AssetService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
+ assetService.Initialise(config);
+ assetService.AddRegion(testScene);
+ assetService.RegionLoaded(testScene);
+ testScene.AddRegionModule(assetService.Name, assetService);
+ m_assetService = assetService;
+ }
+
+ private static void StartInventoryService(Scene testScene, bool real)
+ {
+ ISharedRegionModule inventoryService = new LocalInventoryServicesConnector();
+ IniConfigSource config = new IniConfigSource();
+ config.AddConfig("Modules");
+ config.AddConfig("InventoryService");
+ config.Configs["Modules"].Set("InventoryServices", "LocalInventoryServicesConnector");
+ if (real)
+ config.Configs["InventoryService"].Set("LocalServiceModule", "OpenSim.Services.InventoryService.dll:InventoryService");
+ else
+ config.Configs["InventoryService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:TestInventoryService");
+ config.Configs["InventoryService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
+ inventoryService.Initialise(config);
+ inventoryService.AddRegion(testScene);
+ inventoryService.RegionLoaded(testScene);
+ testScene.AddRegionModule(inventoryService.Name, inventoryService);
+ m_inventoryService = inventoryService;
+ }
+
///
/// Setup modules for a scene using their default settings.
///