diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Server/Handlers/UserAccounts/UserAccountServerConnector.cs (renamed from OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs) | 53 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Mock/MockUserAccountService.cs | 46 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Mock/MockUserService.cs | 149 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Mock/TestClient.cs | 21 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Mock/TestScene.cs | 12 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs | 216 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Setup/AssetHelpers.cs | 9 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | 119 | ||||
-rw-r--r-- | OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs | 150 |
9 files changed, 254 insertions, 521 deletions
diff --git a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs b/OpenSim/Server/Handlers/UserAccounts/UserAccountServerConnector.cs index 013462e..f17a8de 100644 --- a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs +++ b/OpenSim/Server/Handlers/UserAccounts/UserAccountServerConnector.cs | |||
@@ -25,46 +25,37 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using OpenSim.Framework; | 28 | using System; |
29 | using OpenSim.Framework.Communications; | 29 | using Nini.Config; |
30 | using OpenSim.Framework.Communications.Cache; | 30 | using OpenSim.Server.Base; |
31 | using OpenSim.Framework.Servers; | 31 | using OpenSim.Services.Interfaces; |
32 | using OpenSim.Framework.Servers.HttpServer; | 32 | using OpenSim.Framework.Servers.HttpServer; |
33 | using OpenSim.Region.Communications.Local; | 33 | using OpenSim.Server.Handlers.Base; |
34 | using OpenSim.Data; | ||
35 | 34 | ||
36 | namespace OpenSim.Tests.Common.Mock | 35 | namespace OpenSim.Server.Handlers.UserAccounts |
37 | { | 36 | { |
38 | public class TestCommunicationsManager : CommunicationsManager | 37 | public class UserAccountServiceConnector : ServiceConnector |
39 | { | 38 | { |
40 | public IUserDataPlugin UserDataPlugin | 39 | private IUserAccountService m_UserAccountService; |
41 | { | 40 | private string m_ConfigName = "UserAccountService"; |
42 | get { return m_userDataPlugin; } | ||
43 | } | ||
44 | private IUserDataPlugin m_userDataPlugin; | ||
45 | |||
46 | // public IInventoryDataPlugin InventoryDataPlugin | ||
47 | // { | ||
48 | // get { return m_inventoryDataPlugin; } | ||
49 | // } | ||
50 | // private IInventoryDataPlugin m_inventoryDataPlugin; | ||
51 | 41 | ||
52 | public TestCommunicationsManager() | 42 | public UserAccountServiceConnector(IConfigSource config, IHttpServer server, string configName) : |
53 | : this(null) | 43 | base(config, server, configName) |
54 | { | 44 | { |
55 | } | 45 | IConfig serverConfig = config.Configs[m_ConfigName]; |
46 | if (serverConfig == null) | ||
47 | throw new Exception(String.Format("No section {0} in config file", m_ConfigName)); | ||
56 | 48 | ||
57 | public TestCommunicationsManager(NetworkServersInfo serversInfo) | 49 | string service = serverConfig.GetString("LocalServiceModule", |
58 | : base(serversInfo, null) | 50 | String.Empty); |
59 | { | 51 | |
52 | if (service == String.Empty) | ||
53 | throw new Exception("No LocalServiceModule in config file"); | ||
60 | 54 | ||
61 | LocalUserServices lus = new LocalUserServices(991, 992, this); | 55 | Object[] args = new Object[] { config }; |
62 | lus.AddPlugin(new TemporaryUserProfilePlugin()); | 56 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(service, args); |
63 | m_userDataPlugin = new TestUserDataPlugin(); | ||
64 | lus.AddPlugin(m_userDataPlugin); | ||
65 | m_userService = lus; | ||
66 | m_userAdminService = lus; | ||
67 | 57 | ||
58 | server.AddStreamHandler(new UserAccountServerPostHandler(m_UserAccountService)); | ||
68 | } | 59 | } |
69 | } | 60 | } |
70 | } | 61 | } |
diff --git a/OpenSim/Tests/Common/Mock/MockUserAccountService.cs b/OpenSim/Tests/Common/Mock/MockUserAccountService.cs new file mode 100644 index 0000000..0769c7a --- /dev/null +++ b/OpenSim/Tests/Common/Mock/MockUserAccountService.cs | |||
@@ -0,0 +1,46 @@ | |||
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 | |||
28 | using System.Collections.Generic; | ||
29 | using Nini.Config; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Services.Interfaces; | ||
32 | |||
33 | namespace OpenSim.Tests.Common.Mock | ||
34 | { | ||
35 | public class MockUserAccountService : IUserAccountService | ||
36 | { | ||
37 | |||
38 | public MockUserAccountService(IConfigSource config) {} | ||
39 | |||
40 | public UserAccount GetUserAccount(UUID scopeID, UUID userID) { return new UserAccount(); } | ||
41 | public UserAccount GetUserAccount(UUID scopeID, string FirstName, string LastName) { return new UserAccount(); } | ||
42 | public UserAccount GetUserAccount(UUID scopeID, string Email) { return new UserAccount(); } | ||
43 | public List<UserAccount> GetUserAccounts(UUID scopeID, string query) { return new List<UserAccount>(); } | ||
44 | public bool StoreUserAccount(UserAccount data) { return true; } | ||
45 | } | ||
46 | } \ No newline at end of file | ||
diff --git a/OpenSim/Tests/Common/Mock/MockUserService.cs b/OpenSim/Tests/Common/Mock/MockUserService.cs deleted file mode 100644 index 396ef25..0000000 --- a/OpenSim/Tests/Common/Mock/MockUserService.cs +++ /dev/null | |||
@@ -1,149 +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 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Framework.Communications; | ||
33 | using OpenSim.Framework.Communications.Cache; | ||
34 | using OpenSim.Services.Interfaces; | ||
35 | |||
36 | namespace OpenSim.Tests.Common | ||
37 | { | ||
38 | public class MockUserService : IUserService | ||
39 | { | ||
40 | public void AddTemporaryUserProfile(UserProfileData userProfile) | ||
41 | { | ||
42 | throw new NotImplementedException(); | ||
43 | } | ||
44 | |||
45 | public UserProfileData GetUserProfile(string firstName, string lastName) | ||
46 | { | ||
47 | throw new NotImplementedException(); | ||
48 | } | ||
49 | |||
50 | public UserProfileData GetUserProfile(UUID userId) | ||
51 | { | ||
52 | throw new NotImplementedException(); | ||
53 | } | ||
54 | |||
55 | public UserProfileData GetUserProfile(Uri uri) | ||
56 | { | ||
57 | UserProfileData userProfile = new UserProfileData(); | ||
58 | |||
59 | // userProfile.ID = new UUID(Util.GetHashGuid(uri.ToString(), AssetCache.AssetInfo.Secret)); | ||
60 | |||
61 | return userProfile; | ||
62 | } | ||
63 | |||
64 | public Uri GetUserUri(UserProfileData userProfile) | ||
65 | { | ||
66 | throw new NotImplementedException(); | ||
67 | } | ||
68 | |||
69 | public UserAgentData GetAgentByUUID(UUID userId) | ||
70 | { | ||
71 | throw new NotImplementedException(); | ||
72 | } | ||
73 | |||
74 | public void ClearUserAgent(UUID avatarID) | ||
75 | { | ||
76 | throw new NotImplementedException(); | ||
77 | } | ||
78 | |||
79 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(UUID QueryID, string Query) | ||
80 | { | ||
81 | throw new NotImplementedException(); | ||
82 | } | ||
83 | |||
84 | public UserProfileData SetupMasterUser(string firstName, string lastName) | ||
85 | { | ||
86 | throw new NotImplementedException(); | ||
87 | } | ||
88 | |||
89 | public UserProfileData SetupMasterUser(string firstName, string lastName, string password) | ||
90 | { | ||
91 | throw new NotImplementedException(); | ||
92 | } | ||
93 | |||
94 | public UserProfileData SetupMasterUser(UUID userId) | ||
95 | { | ||
96 | throw new NotImplementedException(); | ||
97 | } | ||
98 | |||
99 | public bool UpdateUserProfile(UserProfileData data) | ||
100 | { | ||
101 | throw new NotImplementedException(); | ||
102 | } | ||
103 | |||
104 | public void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms) | ||
105 | { | ||
106 | throw new NotImplementedException(); | ||
107 | } | ||
108 | |||
109 | public void RemoveUserFriend(UUID friendlistowner, UUID friend) | ||
110 | { | ||
111 | throw new NotImplementedException(); | ||
112 | } | ||
113 | |||
114 | public void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms) | ||
115 | { | ||
116 | throw new NotImplementedException(); | ||
117 | } | ||
118 | |||
119 | public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat) | ||
120 | { | ||
121 | throw new NotImplementedException(); | ||
122 | } | ||
123 | |||
124 | public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, float posx, float posy, float posz) | ||
125 | { | ||
126 | throw new NotImplementedException(); | ||
127 | } | ||
128 | |||
129 | public List<FriendListItem> GetUserFriendList(UUID friendlistowner) | ||
130 | { | ||
131 | throw new NotImplementedException(); | ||
132 | } | ||
133 | |||
134 | public bool VerifySession(UUID userID, UUID sessionID) | ||
135 | { | ||
136 | return true; | ||
137 | } | ||
138 | |||
139 | public void SetInventoryService(IInventoryService inv) | ||
140 | { | ||
141 | throw new NotImplementedException(); | ||
142 | } | ||
143 | |||
144 | public virtual bool AuthenticateUserByPassword(UUID userID, string password) | ||
145 | { | ||
146 | throw new NotImplementedException(); | ||
147 | } | ||
148 | } | ||
149 | } | ||
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index 68ac96a..f015db2 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs | |||
@@ -95,7 +95,8 @@ namespace OpenSim.Tests.Common.Mock | |||
95 | public event DeRezObject OnDeRezObject; | 95 | public event DeRezObject OnDeRezObject; |
96 | public event Action<IClientAPI> OnRegionHandShakeReply; | 96 | public event Action<IClientAPI> OnRegionHandShakeReply; |
97 | public event GenericCall2 OnRequestWearables; | 97 | public event GenericCall2 OnRequestWearables; |
98 | public event GenericCall2 OnCompleteMovementToRegion; | 98 | public event GenericCall1 OnCompleteMovementToRegion; |
99 | public event UpdateAgent OnPreAgentUpdate; | ||
99 | public event UpdateAgent OnAgentUpdate; | 100 | public event UpdateAgent OnAgentUpdate; |
100 | public event AgentRequestSit OnAgentRequestSit; | 101 | public event AgentRequestSit OnAgentRequestSit; |
101 | public event AgentSit OnAgentSit; | 102 | public event AgentSit OnAgentSit; |
@@ -367,7 +368,11 @@ namespace OpenSim.Tests.Common.Mock | |||
367 | get { return true; } | 368 | get { return true; } |
368 | set { } | 369 | set { } |
369 | } | 370 | } |
370 | 371 | public bool IsLoggingOut | |
372 | { | ||
373 | get { return false; } | ||
374 | set { } | ||
375 | } | ||
371 | public UUID ActiveGroupId | 376 | public UUID ActiveGroupId |
372 | { | 377 | { |
373 | get { return UUID.Zero; } | 378 | get { return UUID.Zero; } |
@@ -449,7 +454,7 @@ namespace OpenSim.Tests.Common.Mock | |||
449 | 454 | ||
450 | public void CompleteMovement() | 455 | public void CompleteMovement() |
451 | { | 456 | { |
452 | OnCompleteMovementToRegion(); | 457 | OnCompleteMovementToRegion(this); |
453 | } | 458 | } |
454 | 459 | ||
455 | public virtual void ActivateGesture(UUID assetId, UUID gestureId) | 460 | public virtual void ActivateGesture(UUID assetId, UUID gestureId) |
@@ -748,7 +753,7 @@ namespace OpenSim.Tests.Common.Mock | |||
748 | 753 | ||
749 | if (OnCompleteMovementToRegion != null) | 754 | if (OnCompleteMovementToRegion != null) |
750 | { | 755 | { |
751 | OnCompleteMovementToRegion(); | 756 | OnCompleteMovementToRegion(this); |
752 | } | 757 | } |
753 | } | 758 | } |
754 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) | 759 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) |
@@ -1205,5 +1210,13 @@ namespace OpenSim.Tests.Common.Mock | |||
1205 | public void SendGroupActiveProposals(UUID groupID, UUID transactionID, GroupActiveProposals[] Proposals) | 1210 | public void SendGroupActiveProposals(UUID groupID, UUID transactionID, GroupActiveProposals[] Proposals) |
1206 | { | 1211 | { |
1207 | } | 1212 | } |
1213 | |||
1214 | public void SendChangeUserRights(UUID agentID, UUID friendID, int rights) | ||
1215 | { | ||
1216 | } | ||
1217 | |||
1218 | public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId) | ||
1219 | { | ||
1220 | } | ||
1208 | } | 1221 | } |
1209 | } | 1222 | } |
diff --git a/OpenSim/Tests/Common/Mock/TestScene.cs b/OpenSim/Tests/Common/Mock/TestScene.cs index 22cfa2c..01f2c14 100644 --- a/OpenSim/Tests/Common/Mock/TestScene.cs +++ b/OpenSim/Tests/Common/Mock/TestScene.cs | |||
@@ -29,7 +29,7 @@ using System; | |||
29 | using Nini.Config; | 29 | using Nini.Config; |
30 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
31 | using OpenSim.Framework.Communications; | 31 | using OpenSim.Framework.Communications; |
32 | using OpenSim.Framework.Communications.Cache; | 32 | |
33 | using OpenSim.Framework.Servers; | 33 | using OpenSim.Framework.Servers; |
34 | using OpenSim.Region.Framework; | 34 | using OpenSim.Region.Framework; |
35 | using OpenSim.Region.Framework.Scenes; | 35 | using OpenSim.Region.Framework.Scenes; |
@@ -40,10 +40,10 @@ namespace OpenSim.Tests.Common.Mock | |||
40 | { | 40 | { |
41 | public TestScene( | 41 | public TestScene( |
42 | RegionInfo regInfo, AgentCircuitManager authen, | 42 | RegionInfo regInfo, AgentCircuitManager authen, |
43 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, StorageManager storeManager, | 43 | SceneCommunicationService sceneGridService, StorageManager storeManager, |
44 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, | 44 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, |
45 | bool SeeIntoRegionFromNeighbor, IConfigSource config, string simulatorVersion) | 45 | bool SeeIntoRegionFromNeighbor, IConfigSource config, string simulatorVersion) |
46 | : base(regInfo, authen, commsMan, sceneGridService, storeManager, moduleLoader, | 46 | : base(regInfo, authen, sceneGridService, storeManager, moduleLoader, |
47 | dumpAssetsToFile, physicalPrim, SeeIntoRegionFromNeighbor, config, simulatorVersion) | 47 | dumpAssetsToFile, physicalPrim, SeeIntoRegionFromNeighbor, config, simulatorVersion) |
48 | { | 48 | { |
49 | } | 49 | } |
@@ -56,7 +56,7 @@ namespace OpenSim.Tests.Common.Mock | |||
56 | /// | 56 | /// |
57 | /// <param name="agent"></param> | 57 | /// <param name="agent"></param> |
58 | /// <returns></returns> | 58 | /// <returns></returns> |
59 | public override bool AuthenticateUser(AgentCircuitData agent, out string reason) | 59 | public override bool VerifyUserPresence(AgentCircuitData agent, out string reason) |
60 | { | 60 | { |
61 | reason = String.Empty; | 61 | reason = String.Empty; |
62 | return true; | 62 | return true; |
@@ -65,6 +65,6 @@ namespace OpenSim.Tests.Common.Mock | |||
65 | public AsyncSceneObjectGroupDeleter SceneObjectGroupDeleter | 65 | public AsyncSceneObjectGroupDeleter SceneObjectGroupDeleter |
66 | { | 66 | { |
67 | get { return m_asyncSceneObjectDeleter; } | 67 | get { return m_asyncSceneObjectDeleter; } |
68 | } | 68 | } |
69 | } | 69 | } |
70 | } | 70 | } \ No newline at end of file |
diff --git a/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs deleted file mode 100644 index 5188cf6..0000000 --- a/OpenSim/Tests/Common/Mock/TestUserDataPlugin.cs +++ /dev/null | |||
@@ -1,216 +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 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Data; | ||
33 | |||
34 | namespace OpenSim.Tests.Common.Mock | ||
35 | { | ||
36 | /// <summary> | ||
37 | /// In memory user data provider. Might be quite useful as a proper user data plugin, though getting mono addins | ||
38 | /// to load any plugins when running unit tests has proven impossible so far. Currently no locking since unit | ||
39 | /// tests are single threaded. | ||
40 | /// </summary> | ||
41 | public class TestUserDataPlugin : IUserDataPlugin | ||
42 | { | ||
43 | public string Version { get { return "0"; } } | ||
44 | public string Name { get { return "TestUserDataPlugin"; } } | ||
45 | |||
46 | /// <summary> | ||
47 | /// User profiles keyed by name | ||
48 | /// </summary> | ||
49 | private Dictionary<string, UserProfileData> m_userProfilesByName = new Dictionary<string, UserProfileData>(); | ||
50 | |||
51 | /// <summary> | ||
52 | /// User profiles keyed by uuid | ||
53 | /// </summary> | ||
54 | private Dictionary<UUID, UserProfileData> m_userProfilesByUuid = new Dictionary<UUID, UserProfileData>(); | ||
55 | |||
56 | /// <summary> | ||
57 | /// User profiles and their agents | ||
58 | /// </summary> | ||
59 | private Dictionary<UUID, UserAgentData> m_agentByProfileUuid = new Dictionary<UUID, UserAgentData>(); | ||
60 | |||
61 | /// <summary> | ||
62 | /// Friends list by uuid | ||
63 | /// </summary> | ||
64 | private Dictionary<UUID, List<FriendListItem>> m_friendsListByUuid = new Dictionary<UUID, List<FriendListItem>>(); | ||
65 | |||
66 | public void Initialise() {} | ||
67 | public void Dispose() {} | ||
68 | |||
69 | public void AddTemporaryUserProfile(UserProfileData userProfile) | ||
70 | { | ||
71 | // Not interested | ||
72 | } | ||
73 | |||
74 | public void AddNewUserProfile(UserProfileData user) | ||
75 | { | ||
76 | UpdateUserProfile(user); | ||
77 | } | ||
78 | |||
79 | public UserProfileData GetUserByUUID(UUID user) | ||
80 | { | ||
81 | UserProfileData userProfile = null; | ||
82 | m_userProfilesByUuid.TryGetValue(user, out userProfile); | ||
83 | |||
84 | return userProfile; | ||
85 | } | ||
86 | |||
87 | public UserProfileData GetUserByName(string fname, string lname) | ||
88 | { | ||
89 | UserProfileData userProfile = null; | ||
90 | m_userProfilesByName.TryGetValue(fname + " " + lname, out userProfile); | ||
91 | |||
92 | return userProfile; | ||
93 | } | ||
94 | |||
95 | public UserProfileData GetUserByUri(Uri uri) { return null; } | ||
96 | |||
97 | public bool UpdateUserProfile(UserProfileData user) | ||
98 | { | ||
99 | m_userProfilesByUuid[user.ID] = user; | ||
100 | m_userProfilesByName[user.FirstName + " " + user.SurName] = user; | ||
101 | |||
102 | return true; | ||
103 | } | ||
104 | |||
105 | public List<AvatarPickerAvatar> GeneratePickerResults(UUID queryID, string query) { return null; } | ||
106 | |||
107 | public UserAgentData GetAgentByUUID(UUID user) | ||
108 | { | ||
109 | UserAgentData userAgent = null; | ||
110 | m_agentByProfileUuid.TryGetValue(user, out userAgent); | ||
111 | |||
112 | return userAgent; | ||
113 | } | ||
114 | |||
115 | public UserAgentData GetAgentByName(string name) | ||
116 | { | ||
117 | UserProfileData userProfile = null; | ||
118 | m_userProfilesByName.TryGetValue(name, out userProfile); | ||
119 | UserAgentData userAgent = null; | ||
120 | m_agentByProfileUuid.TryGetValue(userProfile.ID, out userAgent); | ||
121 | |||
122 | return userAgent; | ||
123 | } | ||
124 | |||
125 | public UserAgentData GetAgentByName(string fname, string lname) | ||
126 | { | ||
127 | UserProfileData userProfile = GetUserByName(fname,lname); | ||
128 | UserAgentData userAgent = null; | ||
129 | m_agentByProfileUuid.TryGetValue(userProfile.ID, out userAgent); | ||
130 | |||
131 | return userAgent; | ||
132 | } | ||
133 | |||
134 | public void StoreWebLoginKey(UUID agentID, UUID webLoginKey) {} | ||
135 | |||
136 | public void AddNewUserAgent(UserAgentData agent) | ||
137 | { | ||
138 | m_agentByProfileUuid[agent.ProfileID] = agent; | ||
139 | } | ||
140 | public void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms) | ||
141 | { | ||
142 | FriendListItem newfriend = new FriendListItem(); | ||
143 | newfriend.FriendPerms = perms; | ||
144 | newfriend.Friend = friend; | ||
145 | newfriend.FriendListOwner = friendlistowner; | ||
146 | |||
147 | if (!m_friendsListByUuid.ContainsKey(friendlistowner)) | ||
148 | { | ||
149 | List<FriendListItem> friendslist = new List<FriendListItem>(); | ||
150 | m_friendsListByUuid[friendlistowner] = friendslist; | ||
151 | |||
152 | } | ||
153 | m_friendsListByUuid[friendlistowner].Add(newfriend); | ||
154 | } | ||
155 | |||
156 | public void RemoveUserFriend(UUID friendlistowner, UUID friend) | ||
157 | { | ||
158 | if (m_friendsListByUuid.ContainsKey(friendlistowner)) | ||
159 | { | ||
160 | List<FriendListItem> friendslist = m_friendsListByUuid[friendlistowner]; | ||
161 | foreach (FriendListItem frienditem in friendslist) | ||
162 | { | ||
163 | if (frienditem.Friend == friend) | ||
164 | { | ||
165 | friendslist.Remove(frienditem); | ||
166 | break; | ||
167 | } | ||
168 | } | ||
169 | } | ||
170 | } | ||
171 | |||
172 | public void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms) | ||
173 | { | ||
174 | if (m_friendsListByUuid.ContainsKey(friendlistowner)) | ||
175 | { | ||
176 | List<FriendListItem> friendslist = m_friendsListByUuid[friendlistowner]; | ||
177 | foreach (FriendListItem frienditem in friendslist) | ||
178 | { | ||
179 | if (frienditem.Friend == friend) | ||
180 | { | ||
181 | frienditem.FriendPerms = perms; | ||
182 | break; | ||
183 | } | ||
184 | } | ||
185 | } | ||
186 | } | ||
187 | |||
188 | public List<FriendListItem> GetUserFriendList(UUID friendlistowner) | ||
189 | { | ||
190 | if (m_friendsListByUuid.ContainsKey(friendlistowner)) | ||
191 | { | ||
192 | return m_friendsListByUuid[friendlistowner]; | ||
193 | } | ||
194 | else | ||
195 | return new List<FriendListItem>(); | ||
196 | |||
197 | |||
198 | } | ||
199 | |||
200 | public Dictionary<UUID, FriendRegionInfo> GetFriendRegionInfos(List<UUID> uuids) { return null; } | ||
201 | |||
202 | public bool MoneyTransferRequest(UUID from, UUID to, uint amount) { return false; } | ||
203 | |||
204 | public bool InventoryTransferRequest(UUID from, UUID to, UUID inventory) { return false; } | ||
205 | |||
206 | public void Initialise(string connect) { return; } | ||
207 | |||
208 | public AvatarAppearance GetUserAppearance(UUID user) { return null; } | ||
209 | |||
210 | public void UpdateUserAppearance(UUID user, AvatarAppearance appearance) {} | ||
211 | |||
212 | public void ResetAttachments(UUID userID) {} | ||
213 | |||
214 | public void LogoutUsers(UUID regionID) {} | ||
215 | } | ||
216 | } | ||
diff --git a/OpenSim/Tests/Common/Setup/AssetHelpers.cs b/OpenSim/Tests/Common/Setup/AssetHelpers.cs index 1188b62..1fc3cb5 100644 --- a/OpenSim/Tests/Common/Setup/AssetHelpers.cs +++ b/OpenSim/Tests/Common/Setup/AssetHelpers.cs | |||
@@ -38,12 +38,9 @@ namespace OpenSim.Tests.Common | |||
38 | /// <summary> | 38 | /// <summary> |
39 | /// Create an asset from the given data | 39 | /// Create an asset from the given data |
40 | /// </summary> | 40 | /// </summary> |
41 | /// <param name="assetUuid"></param> | 41 | public static AssetBase CreateAsset(UUID assetUuid, string data, UUID creatorID) |
42 | /// <param name="data"></param> | ||
43 | /// <returns></returns> | ||
44 | public static AssetBase CreateAsset(UUID assetUuid, string data) | ||
45 | { | 42 | { |
46 | AssetBase asset = new AssetBase(assetUuid, assetUuid.ToString(), (sbyte)AssetType.Object); | 43 | AssetBase asset = new AssetBase(assetUuid, assetUuid.ToString(), (sbyte)AssetType.Object, creatorID.ToString()); |
47 | asset.Data = Encoding.ASCII.GetBytes(data); | 44 | asset.Data = Encoding.ASCII.GetBytes(data); |
48 | return asset; | 45 | return asset; |
49 | } | 46 | } |
@@ -56,7 +53,7 @@ namespace OpenSim.Tests.Common | |||
56 | /// <returns></returns> | 53 | /// <returns></returns> |
57 | public static AssetBase CreateAsset(UUID assetUuid, SceneObjectGroup sog) | 54 | public static AssetBase CreateAsset(UUID assetUuid, SceneObjectGroup sog) |
58 | { | 55 | { |
59 | AssetBase asset = new AssetBase(assetUuid, assetUuid.ToString(), (sbyte)AssetType.Object); | 56 | AssetBase asset = new AssetBase(assetUuid, assetUuid.ToString(), (sbyte)AssetType.Object, sog.OwnerID.ToString()); |
60 | asset.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(sog)); | 57 | asset.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(sog)); |
61 | return asset; | 58 | return asset; |
62 | } | 59 | } |
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index b13e8dd..864e2aa 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | |||
@@ -32,7 +32,7 @@ using Nini.Config; | |||
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Communications; | 34 | using OpenSim.Framework.Communications; |
35 | using OpenSim.Framework.Communications.Cache; | 35 | |
36 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
37 | using OpenSim.Framework.Servers; | 37 | using OpenSim.Framework.Servers; |
38 | using OpenSim.Framework.Servers.HttpServer; | 38 | using OpenSim.Framework.Servers.HttpServer; |
@@ -45,6 +45,7 @@ using OpenSim.Region.CoreModules.Avatar.Gods; | |||
45 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset; | 45 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset; |
46 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory; | 46 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory; |
47 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid; | 47 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid; |
48 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts; | ||
48 | using OpenSim.Services.Interfaces; | 49 | using OpenSim.Services.Interfaces; |
49 | using OpenSim.Tests.Common.Mock; | 50 | using OpenSim.Tests.Common.Mock; |
50 | 51 | ||
@@ -60,7 +61,7 @@ namespace OpenSim.Tests.Common.Setup | |||
60 | private static ISharedRegionModule m_assetService = null; | 61 | private static ISharedRegionModule m_assetService = null; |
61 | private static ISharedRegionModule m_inventoryService = null; | 62 | private static ISharedRegionModule m_inventoryService = null; |
62 | private static ISharedRegionModule m_gridService = null; | 63 | private static ISharedRegionModule m_gridService = null; |
63 | private static TestCommunicationsManager commsManager = null; | 64 | private static ISharedRegionModule m_userAccountService = null; |
64 | 65 | ||
65 | /// <summary> | 66 | /// <summary> |
66 | /// Set up a test scene | 67 | /// Set up a test scene |
@@ -83,21 +84,23 @@ namespace OpenSim.Tests.Common.Setup | |||
83 | public static TestScene SetupScene(String realServices) | 84 | public static TestScene SetupScene(String realServices) |
84 | { | 85 | { |
85 | return SetupScene( | 86 | return SetupScene( |
86 | "Unit test region", UUID.Random(), 1000, 1000, new TestCommunicationsManager(), realServices); | 87 | "Unit test region", UUID.Random(), 1000, 1000, realServices); |
87 | } | 88 | } |
88 | 89 | ||
89 | /// <summary> | 90 | // REFACTORING PROBLEM. No idea what the difference is with the previous one |
90 | /// Set up a test scene | 91 | ///// <summary> |
91 | /// </summary> | 92 | ///// Set up a test scene |
92 | /// | 93 | ///// </summary> |
93 | /// <param name="realServices">Starts real inventory and asset services, as opposed to mock ones, if true</param> | 94 | ///// |
94 | /// <param name="cm">This should be the same if simulating two scenes within a standalone</param> | 95 | ///// <param name="realServices">Starts real inventory and asset services, as opposed to mock ones, if true</param> |
95 | /// <returns></returns> | 96 | ///// <param name="cm">This should be the same if simulating two scenes within a standalone</param> |
96 | public static TestScene SetupScene(TestCommunicationsManager cm, String realServices) | 97 | ///// <returns></returns> |
97 | { | 98 | //public static TestScene SetupScene(String realServices) |
98 | return SetupScene( | 99 | //{ |
99 | "Unit test region", UUID.Random(), 1000, 1000, cm, ""); | 100 | // return SetupScene( |
100 | } | 101 | // "Unit test region", UUID.Random(), 1000, 1000, ""); |
102 | //} | ||
103 | |||
101 | /// <summary> | 104 | /// <summary> |
102 | /// Set up a test scene | 105 | /// Set up a test scene |
103 | /// </summary> | 106 | /// </summary> |
@@ -107,9 +110,9 @@ namespace OpenSim.Tests.Common.Setup | |||
107 | /// <param name="y">Y co-ordinate of the region</param> | 110 | /// <param name="y">Y co-ordinate of the region</param> |
108 | /// <param name="cm">This should be the same if simulating two scenes within a standalone</param> | 111 | /// <param name="cm">This should be the same if simulating two scenes within a standalone</param> |
109 | /// <returns></returns> | 112 | /// <returns></returns> |
110 | public static TestScene SetupScene(string name, UUID id, uint x, uint y, TestCommunicationsManager cm) | 113 | public static TestScene SetupScene(string name, UUID id, uint x, uint y) |
111 | { | 114 | { |
112 | return SetupScene(name, id, x, y, cm, ""); | 115 | return SetupScene(name, id, x, y,""); |
113 | } | 116 | } |
114 | 117 | ||
115 | 118 | ||
@@ -125,23 +128,24 @@ namespace OpenSim.Tests.Common.Setup | |||
125 | /// <param name="realServices">Starts real inventory and asset services, as opposed to mock ones, if true</param> | 128 | /// <param name="realServices">Starts real inventory and asset services, as opposed to mock ones, if true</param> |
126 | /// <returns></returns> | 129 | /// <returns></returns> |
127 | public static TestScene SetupScene( | 130 | public static TestScene SetupScene( |
128 | string name, UUID id, uint x, uint y, TestCommunicationsManager cm, String realServices) | 131 | string name, UUID id, uint x, uint y, String realServices) |
129 | { | 132 | { |
130 | bool newScene = false; | 133 | bool newScene = false; |
131 | 134 | ||
132 | Console.WriteLine("Setting up test scene {0}", name); | 135 | Console.WriteLine("Setting up test scene {0}", name); |
133 | 136 | ||
134 | // If cm is the same as our last commsManager used, this means the tester wants to link | 137 | // REFACTORING PROBLEM! |
135 | // regions. In this case, don't use the sameshared region modules and dont initialize them again. | 138 | //// If cm is the same as our last commsManager used, this means the tester wants to link |
136 | // Also, no need to start another MainServer and MainConsole instance. | 139 | //// regions. In this case, don't use the sameshared region modules and dont initialize them again. |
137 | if (cm == null || cm != commsManager) | 140 | //// Also, no need to start another MainServer and MainConsole instance. |
138 | { | 141 | //if (cm == null || cm != commsManager) |
139 | System.Console.WriteLine("Starting a brand new scene"); | 142 | //{ |
140 | newScene = true; | 143 | // System.Console.WriteLine("Starting a brand new scene"); |
141 | MainConsole.Instance = new LocalConsole("TEST PROMPT"); | 144 | // newScene = true; |
142 | MainServer.Instance = new BaseHttpServer(980); | 145 | // MainConsole.Instance = new LocalConsole("TEST PROMPT"); |
143 | commsManager = cm; | 146 | // MainServer.Instance = new BaseHttpServer(980); |
144 | } | 147 | // commsManager = cm; |
148 | //} | ||
145 | 149 | ||
146 | // We must set up a console otherwise setup of some modules may fail | 150 | // We must set up a console otherwise setup of some modules may fail |
147 | RegionInfo regInfo = new RegionInfo(x, y, new IPEndPoint(IPAddress.Loopback, 9000), "127.0.0.1"); | 151 | RegionInfo regInfo = new RegionInfo(x, y, new IPEndPoint(IPAddress.Loopback, 9000), "127.0.0.1"); |
@@ -149,13 +153,13 @@ namespace OpenSim.Tests.Common.Setup | |||
149 | regInfo.RegionID = id; | 153 | regInfo.RegionID = id; |
150 | 154 | ||
151 | AgentCircuitManager acm = new AgentCircuitManager(); | 155 | AgentCircuitManager acm = new AgentCircuitManager(); |
152 | SceneCommunicationService scs = new SceneCommunicationService(cm); | 156 | SceneCommunicationService scs = new SceneCommunicationService(); |
153 | 157 | ||
154 | StorageManager sm = new StorageManager("OpenSim.Data.Null.dll", "", ""); | 158 | StorageManager sm = new StorageManager("OpenSim.Data.Null.dll", "", ""); |
155 | IConfigSource configSource = new IniConfigSource(); | 159 | IConfigSource configSource = new IniConfigSource(); |
156 | 160 | ||
157 | TestScene testScene = new TestScene( | 161 | TestScene testScene = new TestScene( |
158 | regInfo, acm, cm, scs, sm, null, false, false, false, configSource, null); | 162 | regInfo, acm, scs, sm, null, false, false, false, configSource, null); |
159 | 163 | ||
160 | INonSharedRegionModule capsModule = new CapabilitiesModule(); | 164 | INonSharedRegionModule capsModule = new CapabilitiesModule(); |
161 | capsModule.Initialise(new IniConfigSource()); | 165 | capsModule.Initialise(new IniConfigSource()); |
@@ -175,13 +179,16 @@ namespace OpenSim.Tests.Common.Setup | |||
175 | StartAssetService(testScene, true); | 179 | StartAssetService(testScene, true); |
176 | else | 180 | else |
177 | StartAssetService(testScene, false); | 181 | StartAssetService(testScene, false); |
182 | |||
178 | if (realServices.Contains("inventory")) | 183 | if (realServices.Contains("inventory")) |
179 | StartInventoryService(testScene, true); | 184 | StartInventoryService(testScene, true); |
180 | else | 185 | else |
181 | StartInventoryService(testScene, false); | 186 | StartInventoryService(testScene, false); |
187 | |||
182 | if (realServices.Contains("grid")) | 188 | if (realServices.Contains("grid")) |
183 | StartGridService(testScene, true); | 189 | StartGridService(testScene, true); |
184 | 190 | ||
191 | StartUserAccountService(testScene, realServices.Contains("useraccounts")); | ||
185 | } | 192 | } |
186 | // If not, make sure the shared module gets references to this new scene | 193 | // If not, make sure the shared module gets references to this new scene |
187 | else | 194 | else |
@@ -190,11 +197,13 @@ namespace OpenSim.Tests.Common.Setup | |||
190 | m_assetService.RegionLoaded(testScene); | 197 | m_assetService.RegionLoaded(testScene); |
191 | m_inventoryService.AddRegion(testScene); | 198 | m_inventoryService.AddRegion(testScene); |
192 | m_inventoryService.RegionLoaded(testScene); | 199 | m_inventoryService.RegionLoaded(testScene); |
200 | m_userAccountService.AddRegion(testScene); | ||
201 | m_userAccountService.RegionLoaded(testScene); | ||
193 | } | 202 | } |
203 | |||
194 | m_inventoryService.PostInitialise(); | 204 | m_inventoryService.PostInitialise(); |
195 | m_assetService.PostInitialise(); | 205 | m_assetService.PostInitialise(); |
196 | 206 | m_userAccountService.PostInitialise(); | |
197 | testScene.CommsManager.UserService.SetInventoryService(testScene.InventoryService); | ||
198 | 207 | ||
199 | testScene.SetModuleInterfaces(); | 208 | testScene.SetModuleInterfaces(); |
200 | 209 | ||
@@ -205,6 +214,14 @@ namespace OpenSim.Tests.Common.Setup | |||
205 | physicsPluginManager.LoadPluginsFromAssembly("Physics/OpenSim.Region.Physics.BasicPhysicsPlugin.dll"); | 214 | physicsPluginManager.LoadPluginsFromAssembly("Physics/OpenSim.Region.Physics.BasicPhysicsPlugin.dll"); |
206 | testScene.PhysicsScene | 215 | testScene.PhysicsScene |
207 | = physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", new IniConfigSource(), "test"); | 216 | = physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", new IniConfigSource(), "test"); |
217 | |||
218 | // It's really not a good idea to use static variables as they carry over between tests, leading to | ||
219 | // problems that are extremely hard to debug. Really, these static fields need to be eliminated - | ||
220 | // tests using multiple regions that need to share modules need to find another solution. | ||
221 | m_assetService = null; | ||
222 | m_inventoryService = null; | ||
223 | m_gridService = null; | ||
224 | m_userAccountService = null; | ||
208 | 225 | ||
209 | return testScene; | 226 | return testScene; |
210 | } | 227 | } |
@@ -269,6 +286,38 @@ namespace OpenSim.Tests.Common.Setup | |||
269 | //testScene.AddRegionModule(m_gridService.Name, m_gridService); | 286 | //testScene.AddRegionModule(m_gridService.Name, m_gridService); |
270 | } | 287 | } |
271 | 288 | ||
289 | /// <summary> | ||
290 | /// Start a user account service, whether real or mock | ||
291 | /// </summary> | ||
292 | /// <param name="testScene"></param> | ||
293 | /// <param name="real">Starts a real service if true, a mock service if not</param> | ||
294 | private static void StartUserAccountService(Scene testScene, bool real) | ||
295 | { | ||
296 | IConfigSource config = new IniConfigSource(); | ||
297 | config.AddConfig("Modules"); | ||
298 | config.AddConfig("UserAccountService"); | ||
299 | config.Configs["Modules"].Set("UserAccountServices", "LocalUserAccountServicesConnector"); | ||
300 | config.Configs["UserAccountService"].Set("StorageProvider", "OpenSim.Data.Null.dll"); | ||
301 | |||
302 | if (real) | ||
303 | config.Configs["UserAccountService"].Set( | ||
304 | "LocalServiceModule", "OpenSim.Services.UserAccountService.dll:UserAccountService"); | ||
305 | else | ||
306 | config.Configs["UserAccountService"].Set( | ||
307 | "LocalServiceModule", "OpenSim.Tests.Common.dll:MockUserAccountService"); | ||
308 | |||
309 | if (m_userAccountService == null) | ||
310 | { | ||
311 | ISharedRegionModule userAccountService = new LocalUserAccountServicesConnector(); | ||
312 | userAccountService.Initialise(config); | ||
313 | m_userAccountService = userAccountService; | ||
314 | } | ||
315 | //else | ||
316 | // config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:TestGridService"); | ||
317 | m_userAccountService.AddRegion(testScene); | ||
318 | m_userAccountService.RegionLoaded(testScene); | ||
319 | testScene.AddRegionModule(m_userAccountService.Name, m_userAccountService); | ||
320 | } | ||
272 | 321 | ||
273 | /// <summary> | 322 | /// <summary> |
274 | /// Setup modules for a scene using their default settings. | 323 | /// Setup modules for a scene using their default settings. |
diff --git a/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs b/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs index cb76bc1..cd61fa6 100644 --- a/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs +++ b/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs | |||
@@ -27,8 +27,7 @@ | |||
27 | 27 | ||
28 | using OpenMetaverse; | 28 | using OpenMetaverse; |
29 | using OpenSim.Framework.Communications; | 29 | using OpenSim.Framework.Communications; |
30 | using OpenSim.Framework.Communications.Cache; | 30 | |
31 | using OpenSim.Region.Communications.Local; | ||
32 | 31 | ||
33 | namespace OpenSim.Tests.Common.Setup | 32 | namespace OpenSim.Tests.Common.Setup |
34 | { | 33 | { |
@@ -37,82 +36,85 @@ namespace OpenSim.Tests.Common.Setup | |||
37 | /// </summary> | 36 | /// </summary> |
38 | public static class UserProfileTestUtils | 37 | public static class UserProfileTestUtils |
39 | { | 38 | { |
40 | /// <summary> | 39 | // REFACTORING PROBLEM |
41 | /// Create a test user with a standard inventory | 40 | // This needs to be rewritten |
42 | /// </summary> | 41 | |
43 | /// <param name="commsManager"></param> | 42 | ///// <summary> |
44 | /// <param name="callback"> | 43 | ///// Create a test user with a standard inventory |
45 | /// Callback to invoke when inventory has been loaded. This is required because | 44 | ///// </summary> |
46 | /// loading may be asynchronous, even on standalone | 45 | ///// <param name="commsManager"></param> |
47 | /// </param> | 46 | ///// <param name="callback"> |
48 | /// <returns></returns> | 47 | ///// Callback to invoke when inventory has been loaded. This is required because |
49 | public static CachedUserInfo CreateUserWithInventory( | 48 | ///// loading may be asynchronous, even on standalone |
50 | CommunicationsManager commsManager, OnInventoryReceivedDelegate callback) | 49 | ///// </param> |
51 | { | 50 | ///// <returns></returns> |
52 | UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000099"); | 51 | //public static CachedUserInfo CreateUserWithInventory( |
53 | return CreateUserWithInventory(commsManager, userId, callback); | 52 | // CommunicationsManager commsManager, OnInventoryReceivedDelegate callback) |
54 | } | 53 | //{ |
54 | // UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000099"); | ||
55 | // return CreateUserWithInventory(commsManager, userId, callback); | ||
56 | //} | ||
55 | 57 | ||
56 | /// <summary> | 58 | ///// <summary> |
57 | /// Create a test user with a standard inventory | 59 | ///// Create a test user with a standard inventory |
58 | /// </summary> | 60 | ///// </summary> |
59 | /// <param name="commsManager"></param> | 61 | ///// <param name="commsManager"></param> |
60 | /// <param name="userId">User ID</param> | 62 | ///// <param name="userId">User ID</param> |
61 | /// <param name="callback"> | 63 | ///// <param name="callback"> |
62 | /// Callback to invoke when inventory has been loaded. This is required because | 64 | ///// Callback to invoke when inventory has been loaded. This is required because |
63 | /// loading may be asynchronous, even on standalone | 65 | ///// loading may be asynchronous, even on standalone |
64 | /// </param> | 66 | ///// </param> |
65 | /// <returns></returns> | 67 | ///// <returns></returns> |
66 | public static CachedUserInfo CreateUserWithInventory( | 68 | //public static CachedUserInfo CreateUserWithInventory( |
67 | CommunicationsManager commsManager, UUID userId, OnInventoryReceivedDelegate callback) | 69 | // CommunicationsManager commsManager, UUID userId, OnInventoryReceivedDelegate callback) |
68 | { | 70 | //{ |
69 | return CreateUserWithInventory(commsManager, "Bill", "Bailey", userId, callback); | 71 | // return CreateUserWithInventory(commsManager, "Bill", "Bailey", userId, callback); |
70 | } | 72 | //} |
71 | 73 | ||
72 | /// <summary> | 74 | ///// <summary> |
73 | /// Create a test user with a standard inventory | 75 | ///// Create a test user with a standard inventory |
74 | /// </summary> | 76 | ///// </summary> |
75 | /// <param name="commsManager"></param> | 77 | ///// <param name="commsManager"></param> |
76 | /// <param name="firstName">First name of user</param> | 78 | ///// <param name="firstName">First name of user</param> |
77 | /// <param name="lastName">Last name of user</param> | 79 | ///// <param name="lastName">Last name of user</param> |
78 | /// <param name="userId">User ID</param> | 80 | ///// <param name="userId">User ID</param> |
79 | /// <param name="callback"> | 81 | ///// <param name="callback"> |
80 | /// Callback to invoke when inventory has been loaded. This is required because | 82 | ///// Callback to invoke when inventory has been loaded. This is required because |
81 | /// loading may be asynchronous, even on standalone | 83 | ///// loading may be asynchronous, even on standalone |
82 | /// </param> | 84 | ///// </param> |
83 | /// <returns></returns> | 85 | ///// <returns></returns> |
84 | public static CachedUserInfo CreateUserWithInventory( | 86 | //public static CachedUserInfo CreateUserWithInventory( |
85 | CommunicationsManager commsManager, string firstName, string lastName, | 87 | // CommunicationsManager commsManager, string firstName, string lastName, |
86 | UUID userId, OnInventoryReceivedDelegate callback) | 88 | // UUID userId, OnInventoryReceivedDelegate callback) |
87 | { | 89 | //{ |
88 | return CreateUserWithInventory(commsManager, firstName, lastName, "troll", userId, callback); | 90 | // return CreateUserWithInventory(commsManager, firstName, lastName, "troll", userId, callback); |
89 | } | 91 | //} |
90 | 92 | ||
91 | /// <summary> | 93 | ///// <summary> |
92 | /// Create a test user with a standard inventory | 94 | ///// Create a test user with a standard inventory |
93 | /// </summary> | 95 | ///// </summary> |
94 | /// <param name="commsManager"></param> | 96 | ///// <param name="commsManager"></param> |
95 | /// <param name="firstName">First name of user</param> | 97 | ///// <param name="firstName">First name of user</param> |
96 | /// <param name="lastName">Last name of user</param> | 98 | ///// <param name="lastName">Last name of user</param> |
97 | /// <param name="password">Password</param> | 99 | ///// <param name="password">Password</param> |
98 | /// <param name="userId">User ID</param> | 100 | ///// <param name="userId">User ID</param> |
99 | /// <param name="callback"> | 101 | ///// <param name="callback"> |
100 | /// Callback to invoke when inventory has been loaded. This is required because | 102 | ///// Callback to invoke when inventory has been loaded. This is required because |
101 | /// loading may be asynchronous, even on standalone | 103 | ///// loading may be asynchronous, even on standalone |
102 | /// </param> | 104 | ///// </param> |
103 | /// <returns></returns> | 105 | ///// <returns></returns> |
104 | public static CachedUserInfo CreateUserWithInventory( | 106 | //public static CachedUserInfo CreateUserWithInventory( |
105 | CommunicationsManager commsManager, string firstName, string lastName, string password, | 107 | // CommunicationsManager commsManager, string firstName, string lastName, string password, |
106 | UUID userId, OnInventoryReceivedDelegate callback) | 108 | // UUID userId, OnInventoryReceivedDelegate callback) |
107 | { | 109 | //{ |
108 | LocalUserServices lus = (LocalUserServices)commsManager.UserService; | 110 | // LocalUserServices lus = (LocalUserServices)commsManager.UserService; |
109 | lus.AddUser(firstName, lastName, password, "bill@bailey.com", 1000, 1000, userId); | 111 | // lus.AddUser(firstName, lastName, password, "bill@bailey.com", 1000, 1000, userId); |
110 | 112 | ||
111 | CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userId); | 113 | // CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userId); |
112 | userInfo.OnInventoryReceived += callback; | 114 | // userInfo.OnInventoryReceived += callback; |
113 | userInfo.FetchInventory(); | 115 | // userInfo.FetchInventory(); |
114 | 116 | ||
115 | return userInfo; | 117 | // return userInfo; |
116 | } | 118 | //} |
117 | } | 119 | } |
118 | } | 120 | } |