diff options
Diffstat (limited to 'OpenSim/Data/Tests')
-rw-r--r-- | OpenSim/Data/Tests/BasicAssetTest.cs | 6 | ||||
-rw-r--r-- | OpenSim/Data/Tests/BasicGridTest.cs | 173 | ||||
-rw-r--r-- | OpenSim/Data/Tests/BasicUserTest.cs | 703 |
3 files changed, 6 insertions, 876 deletions
diff --git a/OpenSim/Data/Tests/BasicAssetTest.cs b/OpenSim/Data/Tests/BasicAssetTest.cs index 25aed61..967d70d 100644 --- a/OpenSim/Data/Tests/BasicAssetTest.cs +++ b/OpenSim/Data/Tests/BasicAssetTest.cs | |||
@@ -73,17 +73,23 @@ namespace OpenSim.Data.Tests | |||
73 | a2.Data = asset1; | 73 | a2.Data = asset1; |
74 | a3.Data = asset1; | 74 | a3.Data = asset1; |
75 | 75 | ||
76 | a1.Metadata.ContentType = "application/octet-stream"; | ||
77 | a2.Metadata.ContentType = "application/octet-stream"; | ||
78 | a3.Metadata.ContentType = "application/octet-stream"; | ||
79 | |||
76 | PropertyScrambler<AssetBase> scrambler = new PropertyScrambler<AssetBase>() | 80 | PropertyScrambler<AssetBase> scrambler = new PropertyScrambler<AssetBase>() |
77 | .DontScramble(x => x.Data) | 81 | .DontScramble(x => x.Data) |
78 | .DontScramble(x => x.ID) | 82 | .DontScramble(x => x.ID) |
79 | .DontScramble(x => x.FullID) | 83 | .DontScramble(x => x.FullID) |
80 | .DontScramble(x => x.Metadata.ID) | 84 | .DontScramble(x => x.Metadata.ID) |
85 | .DontScramble(x => x.Metadata.ContentType) | ||
81 | .DontScramble(x => x.Metadata.FullID); | 86 | .DontScramble(x => x.Metadata.FullID); |
82 | 87 | ||
83 | scrambler.Scramble(a1); | 88 | scrambler.Scramble(a1); |
84 | scrambler.Scramble(a2); | 89 | scrambler.Scramble(a2); |
85 | scrambler.Scramble(a3); | 90 | scrambler.Scramble(a3); |
86 | 91 | ||
92 | |||
87 | db.StoreAsset(a1); | 93 | db.StoreAsset(a1); |
88 | db.StoreAsset(a2); | 94 | db.StoreAsset(a2); |
89 | db.StoreAsset(a3); | 95 | db.StoreAsset(a3); |
diff --git a/OpenSim/Data/Tests/BasicGridTest.cs b/OpenSim/Data/Tests/BasicGridTest.cs deleted file mode 100644 index df6c669..0000000 --- a/OpenSim/Data/Tests/BasicGridTest.cs +++ /dev/null | |||
@@ -1,173 +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 System.Text; | ||
31 | using NUnit.Framework; | ||
32 | using NUnit.Framework.SyntaxHelpers; | ||
33 | using OpenMetaverse; | ||
34 | |||
35 | namespace OpenSim.Data.Tests | ||
36 | { | ||
37 | public class BasicGridTest | ||
38 | { | ||
39 | public IGridDataPlugin db; | ||
40 | public UUID region1, region2, region3; | ||
41 | public UUID zero = UUID.Zero; | ||
42 | public static Random random = new Random(); | ||
43 | |||
44 | [TearDown] | ||
45 | public void removeAllRegions() | ||
46 | { | ||
47 | // Clean up all the regions. | ||
48 | List<RegionProfileData> regions = db.GetRegionsByName("", 100); | ||
49 | if (regions != null) | ||
50 | { | ||
51 | foreach (RegionProfileData region in regions) | ||
52 | { | ||
53 | db.DeleteProfile(region.Uuid.ToString()); | ||
54 | } | ||
55 | } | ||
56 | } | ||
57 | |||
58 | public void SuperInit() | ||
59 | { | ||
60 | OpenSim.Tests.Common.TestLogging.LogToConsole(); | ||
61 | region1 = UUID.Random(); | ||
62 | region2 = UUID.Random(); | ||
63 | region3 = UUID.Random(); | ||
64 | } | ||
65 | |||
66 | protected RegionProfileData createRegion(UUID regionUUID, string regionName) | ||
67 | { | ||
68 | RegionProfileData reg = new RegionProfileData(); | ||
69 | new PropertyScrambler<RegionProfileData>().Scramble(reg); | ||
70 | reg.Uuid = regionUUID; | ||
71 | reg.RegionName = regionName; | ||
72 | |||
73 | db.StoreProfile(reg); | ||
74 | |||
75 | return reg; | ||
76 | } | ||
77 | |||
78 | [Test] | ||
79 | public void T001_LoadEmpty() | ||
80 | { | ||
81 | Assert.That(db.GetProfileByUUID(region1),Is.Null); | ||
82 | Assert.That(db.GetProfileByUUID(region2),Is.Null); | ||
83 | Assert.That(db.GetProfileByUUID(region3),Is.Null); | ||
84 | Assert.That(db.GetProfileByUUID(zero),Is.Null); | ||
85 | } | ||
86 | |||
87 | [Test] | ||
88 | public void T011_AddRetrieveCompleteTest() | ||
89 | { | ||
90 | RegionProfileData newreg = createRegion(region2, "|<Goth@m Ci1y>|"); | ||
91 | RegionProfileData retreg = db.GetProfileByUUID(region2); | ||
92 | |||
93 | Assert.That(retreg, Constraints.PropertyCompareConstraint(newreg).IgnoreProperty(x => x.RegionOnline)); | ||
94 | |||
95 | retreg = db.GetProfileByHandle(newreg.RegionHandle); | ||
96 | Assert.That(retreg.Uuid, Is.EqualTo(region2), "Assert.That(retreg.Uuid, Is.EqualTo(region2))"); | ||
97 | |||
98 | retreg = db.GetProfileByString(newreg.RegionName); | ||
99 | Assert.That(retreg.Uuid, Is.EqualTo(region2), "Assert.That(retreg.Uuid, Is.EqualTo(region2))"); | ||
100 | |||
101 | RegionProfileData[] retregs = db.GetProfilesInRange(newreg.RegionLocX,newreg.RegionLocY,newreg.RegionLocX,newreg.RegionLocY); | ||
102 | Assert.That(retregs[0].Uuid, Is.EqualTo(region2), "Assert.That(retregs[0].Uuid, Is.EqualTo(region2))"); | ||
103 | } | ||
104 | |||
105 | [Test] | ||
106 | public void T012_DeleteProfile() | ||
107 | { | ||
108 | createRegion(region1, "doesn't matter"); | ||
109 | |||
110 | db.DeleteProfile(region1.ToString()); | ||
111 | RegionProfileData retreg = db.GetProfileByUUID(region1); | ||
112 | Assert.That(retreg,Is.Null); | ||
113 | } | ||
114 | |||
115 | [Test] | ||
116 | public void T013_UpdateProfile() | ||
117 | { | ||
118 | createRegion(region2, "|<Goth@m Ci1y>|"); | ||
119 | |||
120 | RegionProfileData retreg = db.GetProfileByUUID(region2); | ||
121 | retreg.regionName = "Gotham City"; | ||
122 | |||
123 | db.StoreProfile(retreg); | ||
124 | |||
125 | retreg = db.GetProfileByUUID(region2); | ||
126 | Assert.That(retreg.RegionName, Is.EqualTo("Gotham City"), "Assert.That(retreg.RegionName, Is.EqualTo(\"Gotham City\"))"); | ||
127 | } | ||
128 | |||
129 | [Test] | ||
130 | public void T014_RegionList() | ||
131 | { | ||
132 | createRegion(region2, "Gotham City"); | ||
133 | |||
134 | RegionProfileData retreg = db.GetProfileByUUID(region2); | ||
135 | retreg.RegionName = "Gotham Town"; | ||
136 | retreg.Uuid = region1; | ||
137 | |||
138 | db.StoreProfile(retreg); | ||
139 | |||
140 | retreg = db.GetProfileByUUID(region2); | ||
141 | retreg.RegionName = "Gothan Town"; | ||
142 | retreg.Uuid = region3; | ||
143 | |||
144 | db.StoreProfile(retreg); | ||
145 | |||
146 | List<RegionProfileData> listreg = db.GetRegionsByName("Gotham",10); | ||
147 | |||
148 | Assert.That(listreg.Count,Is.EqualTo(2), "Assert.That(listreg.Count,Is.EqualTo(2))"); | ||
149 | Assert.That(listreg[0].Uuid,Is.Not.EqualTo(listreg[1].Uuid), "Assert.That(listreg[0].Uuid,Is.Not.EqualTo(listreg[1].Uuid))"); | ||
150 | Assert.That(listreg[0].Uuid, Is.EqualTo(region1) | Is.EqualTo(region2), "Assert.That(listreg[0].Uuid, Is.EqualTo(region1) | Is.EqualTo(region2))"); | ||
151 | Assert.That(listreg[1].Uuid, Is.EqualTo(region1) | Is.EqualTo(region2), "Assert.That(listreg[1].Uuid, Is.EqualTo(region1) | Is.EqualTo(region2))"); | ||
152 | } | ||
153 | |||
154 | [Test] | ||
155 | public void T999_StillNull() | ||
156 | { | ||
157 | Assert.That(db.GetProfileByUUID(zero), Is.Null); | ||
158 | } | ||
159 | |||
160 | protected static string RandomName() | ||
161 | { | ||
162 | StringBuilder name = new StringBuilder(); | ||
163 | int size = random.Next(5,12); | ||
164 | char ch ; | ||
165 | for (int i=0; i<size; i++) | ||
166 | { | ||
167 | ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))) ; | ||
168 | name.Append(ch); | ||
169 | } | ||
170 | return name.ToString(); | ||
171 | } | ||
172 | } | ||
173 | } | ||
diff --git a/OpenSim/Data/Tests/BasicUserTest.cs b/OpenSim/Data/Tests/BasicUserTest.cs deleted file mode 100644 index d3b6041..0000000 --- a/OpenSim/Data/Tests/BasicUserTest.cs +++ /dev/null | |||
@@ -1,703 +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 | // TODO: Money Transfer, Inventory Transfer and UpdateUserRegion once they exist | ||
29 | |||
30 | using System; | ||
31 | using System.Collections.Generic; | ||
32 | using System.Text; | ||
33 | using log4net.Config; | ||
34 | using NUnit.Framework; | ||
35 | using NUnit.Framework.SyntaxHelpers; | ||
36 | using OpenMetaverse; | ||
37 | using OpenSim.Framework; | ||
38 | using log4net; | ||
39 | using System.Reflection; | ||
40 | |||
41 | namespace OpenSim.Data.Tests | ||
42 | { | ||
43 | public class BasicUserTest | ||
44 | { | ||
45 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
46 | public IUserDataPlugin db; | ||
47 | public UUID user1; | ||
48 | public UUID user2; | ||
49 | public UUID user3; | ||
50 | public UUID user4; | ||
51 | public UUID user5; | ||
52 | public UUID webkey; | ||
53 | public UUID zero = UUID.Zero; | ||
54 | public static Random random; | ||
55 | |||
56 | public UUID agent1; | ||
57 | public UUID agent2; | ||
58 | public UUID agent3; | ||
59 | public UUID agent4; | ||
60 | |||
61 | public UUID region1; | ||
62 | |||
63 | public string fname0; | ||
64 | public string lname0; | ||
65 | public string fname1; | ||
66 | public string lname1; | ||
67 | public string fname2; | ||
68 | public string lname2; | ||
69 | public string fname3; | ||
70 | public string lname3; | ||
71 | |||
72 | public void SuperInit() | ||
73 | { | ||
74 | OpenSim.Tests.Common.TestLogging.LogToConsole(); | ||
75 | random = new Random(); | ||
76 | user1 = UUID.Random(); | ||
77 | user2 = UUID.Random(); | ||
78 | user3 = UUID.Random(); | ||
79 | user4 = UUID.Random(); | ||
80 | user5 = UUID.Random(); | ||
81 | agent1 = UUID.Random(); | ||
82 | agent2 = UUID.Random(); | ||
83 | agent3 = UUID.Random(); | ||
84 | agent4 = UUID.Random(); | ||
85 | webkey = UUID.Random(); | ||
86 | region1 = UUID.Random(); | ||
87 | fname0 = RandomName(); | ||
88 | lname0 = RandomName(); | ||
89 | fname1 = RandomName(); | ||
90 | lname1 = RandomName(); | ||
91 | fname2 = RandomName(); | ||
92 | lname2 = RandomName(); | ||
93 | fname3 = RandomName(); | ||
94 | lname3 = RandomName(); | ||
95 | } | ||
96 | |||
97 | [Test] | ||
98 | public void T001_LoadEmpty() | ||
99 | { | ||
100 | Assert.That(db.GetUserByUUID(zero), Is.Null); | ||
101 | Assert.That(db.GetUserByUUID(user1), Is.Null); | ||
102 | Assert.That(db.GetUserByUUID(user2), Is.Null); | ||
103 | Assert.That(db.GetUserByUUID(user3), Is.Null); | ||
104 | Assert.That(db.GetUserByUUID(UUID.Random()), Is.Null); | ||
105 | |||
106 | Assert.That(db.GetAgentByUUID(zero), Is.Null); | ||
107 | Assert.That(db.GetAgentByUUID(agent1), Is.Null); | ||
108 | Assert.That(db.GetAgentByUUID(agent2), Is.Null); | ||
109 | Assert.That(db.GetAgentByUUID(agent3), Is.Null); | ||
110 | Assert.That(db.GetAgentByUUID(UUID.Random()), Is.Null); | ||
111 | } | ||
112 | |||
113 | [Test] | ||
114 | public void T010_CreateUser() | ||
115 | { | ||
116 | UserProfileData u1 = NewUser(user1,fname1,lname1); | ||
117 | UserProfileData u2 = NewUser(user2,fname2,lname2); | ||
118 | UserProfileData u3 = NewUser(user3,fname3,lname3); | ||
119 | // this is used to check whether null works here | ||
120 | u3.Email = null; | ||
121 | |||
122 | db.AddNewUserProfile(u1); | ||
123 | db.AddNewUserProfile(u2); | ||
124 | db.AddNewUserProfile(u3); | ||
125 | UserProfileData u1a = db.GetUserByUUID(user1); | ||
126 | UserProfileData u2a = db.GetUserByUUID(user2); | ||
127 | UserProfileData u3a = db.GetUserByUUID(user3); | ||
128 | Assert.That(user1,Is.EqualTo(u1a.ID), "Assert.That(user1,Is.EqualTo(u1a.ID))"); | ||
129 | Assert.That(user2,Is.EqualTo(u2a.ID), "Assert.That(user2,Is.EqualTo(u2a.ID))"); | ||
130 | Assert.That(user3,Is.EqualTo(u3a.ID), "Assert.That(user3,Is.EqualTo(u3a.ID))"); | ||
131 | |||
132 | // and one email test | ||
133 | Assert.That(u3.Email, Is.Null); | ||
134 | } | ||
135 | |||
136 | [Test] | ||
137 | public void T011_FetchUserByName() | ||
138 | { | ||
139 | UserProfileData u1 = db.GetUserByName(fname1,lname1); | ||
140 | UserProfileData u2 = db.GetUserByName(fname2,lname2); | ||
141 | UserProfileData u3 = db.GetUserByName(fname3,lname3); | ||
142 | Assert.That(user1,Is.EqualTo(u1.ID), "Assert.That(user1,Is.EqualTo(u1.ID))"); | ||
143 | Assert.That(user2,Is.EqualTo(u2.ID), "Assert.That(user2,Is.EqualTo(u2.ID))"); | ||
144 | Assert.That(user3,Is.EqualTo(u3.ID), "Assert.That(user3,Is.EqualTo(u3.ID))"); | ||
145 | } | ||
146 | |||
147 | [Test] | ||
148 | public void T012_UpdateUserProfile() | ||
149 | { | ||
150 | UserProfileData u1 = db.GetUserByUUID(user1); | ||
151 | Assert.That(fname1,Is.EqualTo(u1.FirstName), "Assert.That(fname1,Is.EqualTo(u1.FirstName))"); | ||
152 | u1.FirstName = "Ugly"; | ||
153 | |||
154 | db.UpdateUserProfile(u1); | ||
155 | Assert.That("Ugly",Is.EqualTo(u1.FirstName), "Assert.That(\"Ugly\",Is.EqualTo(u1.FirstName))"); | ||
156 | } | ||
157 | |||
158 | [Test] | ||
159 | public void T013_StoreUserWebKey() | ||
160 | { | ||
161 | UserProfileData u1 = db.GetUserByUUID(user1); | ||
162 | Assert.That(u1.WebLoginKey,Is.EqualTo(zero), "Assert.That(u1.WebLoginKey,Is.EqualTo(zero))"); | ||
163 | db.StoreWebLoginKey(user1, webkey); | ||
164 | u1 = db.GetUserByUUID(user1); | ||
165 | Assert.That(u1.WebLoginKey,Is.EqualTo(webkey), "Assert.That(u1.WebLoginKey,Is.EqualTo(webkey))"); | ||
166 | } | ||
167 | |||
168 | [Test] | ||
169 | public void T014_ExpectedNullReferenceReturns() | ||
170 | { | ||
171 | UserProfileData u0 = NewUser(zero,fname0,lname0); | ||
172 | UserProfileData u4 = NewUser(user4,fname2,lname2); | ||
173 | db.AddNewUserProfile(u0); //UserID 0 should fail to save. | ||
174 | db.AddNewUserProfile(u4); //The first name and last name are already in use (from T010), so this should fail too | ||
175 | Assert.That(db.GetUserByUUID(zero),Is.Null); | ||
176 | Assert.That(db.GetUserByUUID(user4),Is.Null); | ||
177 | } | ||
178 | |||
179 | [Test] | ||
180 | public void T015_UserPersistency() | ||
181 | { | ||
182 | UserProfileData u = new UserProfileData(); | ||
183 | UUID id = user5; | ||
184 | string fname = RandomName(); | ||
185 | string lname = RandomName(); | ||
186 | string email = RandomName(); | ||
187 | string passhash = RandomName(); | ||
188 | string passsalt = RandomName(); | ||
189 | UUID homeregion = UUID.Random(); | ||
190 | UUID webloginkey = UUID.Random(); | ||
191 | uint homeregx = (uint) random.Next(); | ||
192 | uint homeregy = (uint) random.Next(); | ||
193 | Vector3 homeloc | ||
194 | = new Vector3( | ||
195 | (float)Math.Round(random.NextDouble(), 5), | ||
196 | (float)Math.Round(random.NextDouble(), 5), | ||
197 | (float)Math.Round(random.NextDouble(), 5)); | ||
198 | Vector3 homelookat | ||
199 | = new Vector3( | ||
200 | (float)Math.Round(random.NextDouble(), 5), | ||
201 | (float)Math.Round(random.NextDouble(), 5), | ||
202 | (float)Math.Round(random.NextDouble(), 5)); | ||
203 | int created = random.Next(); | ||
204 | int lastlogin = random.Next(); | ||
205 | string userinvuri = RandomName(); | ||
206 | string userasseturi = RandomName(); | ||
207 | uint candomask = (uint) random.Next(); | ||
208 | uint wantdomask = (uint) random.Next(); | ||
209 | string abouttext = RandomName(); | ||
210 | string flabouttext = RandomName(); | ||
211 | UUID image = UUID.Random(); | ||
212 | UUID firstimage = UUID.Random(); | ||
213 | UserAgentData agent = NewAgent(id,UUID.Random()); | ||
214 | int userflags = random.Next(); | ||
215 | int godlevel = random.Next(); | ||
216 | string customtype = RandomName(); | ||
217 | UUID partner = UUID.Random(); | ||
218 | |||
219 | //HomeRegionX and HomeRegionY must only use 24 bits | ||
220 | homeregx = ((homeregx << 8) >> 8); | ||
221 | homeregy = ((homeregy << 8) >> 8); | ||
222 | |||
223 | u.ID = id; | ||
224 | u.WebLoginKey = webloginkey; | ||
225 | u.HomeRegionID = homeregion; | ||
226 | u.FirstName = fname; | ||
227 | u.SurName = lname; | ||
228 | u.Email = email; | ||
229 | u.PasswordHash = passhash; | ||
230 | u.PasswordSalt = passsalt; | ||
231 | u.HomeRegionX = homeregx; | ||
232 | u.HomeRegionY = homeregy; | ||
233 | ulong homereg = u.HomeRegion; | ||
234 | u.HomeLocation = homeloc; | ||
235 | u.HomeLookAt = homelookat; | ||
236 | u.Created = created; | ||
237 | u.LastLogin = lastlogin; | ||
238 | u.UserInventoryURI = userinvuri; | ||
239 | u.UserAssetURI = userasseturi; | ||
240 | u.CanDoMask = candomask; | ||
241 | u.WantDoMask = wantdomask; | ||
242 | u.AboutText = abouttext; | ||
243 | u.FirstLifeAboutText = flabouttext; | ||
244 | u.Image = image; | ||
245 | u.FirstLifeImage = firstimage; | ||
246 | u.CurrentAgent = agent; | ||
247 | u.UserFlags = userflags; | ||
248 | u.GodLevel = godlevel; | ||
249 | u.CustomType = customtype; | ||
250 | u.Partner = partner; | ||
251 | |||
252 | db.AddNewUserProfile(u); | ||
253 | UserProfileData u1a = db.GetUserByUUID(id); | ||
254 | Assert.That(u1a,Is.Not.Null); | ||
255 | Assert.That(id,Is.EqualTo(u1a.ID), "Assert.That(id,Is.EqualTo(u1a.ID))"); | ||
256 | Assert.That(homeregion,Is.EqualTo(u1a.HomeRegionID), "Assert.That(homeregion,Is.EqualTo(u1a.HomeRegionID))"); | ||
257 | Assert.That(webloginkey,Is.EqualTo(u1a.WebLoginKey), "Assert.That(webloginkey,Is.EqualTo(u1a.WebLoginKey))"); | ||
258 | Assert.That(fname,Is.EqualTo(u1a.FirstName), "Assert.That(fname,Is.EqualTo(u1a.FirstName))"); | ||
259 | Assert.That(lname,Is.EqualTo(u1a.SurName), "Assert.That(lname,Is.EqualTo(u1a.SurName))"); | ||
260 | Assert.That(email,Is.EqualTo(u1a.Email), "Assert.That(email,Is.EqualTo(u1a.Email))"); | ||
261 | Assert.That(passhash,Is.EqualTo(u1a.PasswordHash), "Assert.That(passhash,Is.EqualTo(u1a.PasswordHash))"); | ||
262 | Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt), "Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt))"); | ||
263 | Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX), "Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX))"); | ||
264 | Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY), "Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY))"); | ||
265 | Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))"); | ||
266 | Assert.That(homeloc,Is.EqualTo(u1a.HomeLocation), "Assert.That(homeloc,Is.EqualTo(u1a.HomeLocation))"); | ||
267 | Assert.That(homelookat,Is.EqualTo(u1a.HomeLookAt), "Assert.That(homelookat,Is.EqualTo(u1a.HomeLookAt))"); | ||
268 | Assert.That(created,Is.EqualTo(u1a.Created), "Assert.That(created,Is.EqualTo(u1a.Created))"); | ||
269 | Assert.That(lastlogin,Is.EqualTo(u1a.LastLogin), "Assert.That(lastlogin,Is.EqualTo(u1a.LastLogin))"); | ||
270 | Assert.That(userinvuri,Is.EqualTo(u1a.UserInventoryURI), "Assert.That(userinvuri,Is.EqualTo(u1a.UserInventoryURI))"); | ||
271 | Assert.That(userasseturi,Is.EqualTo(u1a.UserAssetURI), "Assert.That(userasseturi,Is.EqualTo(u1a.UserAssetURI))"); | ||
272 | Assert.That(candomask,Is.EqualTo(u1a.CanDoMask), "Assert.That(candomask,Is.EqualTo(u1a.CanDoMask))"); | ||
273 | Assert.That(wantdomask,Is.EqualTo(u1a.WantDoMask), "Assert.That(wantdomask,Is.EqualTo(u1a.WantDoMask))"); | ||
274 | Assert.That(abouttext,Is.EqualTo(u1a.AboutText), "Assert.That(abouttext,Is.EqualTo(u1a.AboutText))"); | ||
275 | Assert.That(flabouttext,Is.EqualTo(u1a.FirstLifeAboutText), "Assert.That(flabouttext,Is.EqualTo(u1a.FirstLifeAboutText))"); | ||
276 | Assert.That(image,Is.EqualTo(u1a.Image), "Assert.That(image,Is.EqualTo(u1a.Image))"); | ||
277 | Assert.That(firstimage,Is.EqualTo(u1a.FirstLifeImage), "Assert.That(firstimage,Is.EqualTo(u1a.FirstLifeImage))"); | ||
278 | Assert.That(u1a.CurrentAgent,Is.Null); | ||
279 | Assert.That(userflags,Is.EqualTo(u1a.UserFlags), "Assert.That(userflags,Is.EqualTo(u1a.UserFlags))"); | ||
280 | Assert.That(godlevel,Is.EqualTo(u1a.GodLevel), "Assert.That(godlevel,Is.EqualTo(u1a.GodLevel))"); | ||
281 | Assert.That(customtype,Is.EqualTo(u1a.CustomType), "Assert.That(customtype,Is.EqualTo(u1a.CustomType))"); | ||
282 | Assert.That(partner,Is.EqualTo(u1a.Partner), "Assert.That(partner,Is.EqualTo(u1a.Partner))"); | ||
283 | } | ||
284 | |||
285 | [Test] | ||
286 | public void T016_UserUpdatePersistency() | ||
287 | { | ||
288 | UUID id = user5; | ||
289 | UserProfileData u = db.GetUserByUUID(id); | ||
290 | string fname = RandomName(); | ||
291 | string lname = RandomName(); | ||
292 | string email = RandomName(); | ||
293 | string passhash = RandomName(); | ||
294 | string passsalt = RandomName(); | ||
295 | UUID homeregionid = UUID.Random(); | ||
296 | UUID webloginkey = UUID.Random(); | ||
297 | uint homeregx = (uint) random.Next(); | ||
298 | uint homeregy = (uint) random.Next(); | ||
299 | Vector3 homeloc = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5)); | ||
300 | Vector3 homelookat = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5)); | ||
301 | int created = random.Next(); | ||
302 | int lastlogin = random.Next(); | ||
303 | string userinvuri = RandomName(); | ||
304 | string userasseturi = RandomName(); | ||
305 | uint candomask = (uint) random.Next(); | ||
306 | uint wantdomask = (uint) random.Next(); | ||
307 | string abouttext = RandomName(); | ||
308 | string flabouttext = RandomName(); | ||
309 | UUID image = UUID.Random(); | ||
310 | UUID firstimage = UUID.Random(); | ||
311 | UserAgentData agent = NewAgent(id,UUID.Random()); | ||
312 | int userflags = random.Next(); | ||
313 | int godlevel = random.Next(); | ||
314 | string customtype = RandomName(); | ||
315 | UUID partner = UUID.Random(); | ||
316 | |||
317 | //HomeRegionX and HomeRegionY must only use 24 bits | ||
318 | homeregx = ((homeregx << 8) >> 8); | ||
319 | homeregy = ((homeregy << 8) >> 8); | ||
320 | |||
321 | u.WebLoginKey = webloginkey; | ||
322 | u.HomeRegionID = homeregionid; | ||
323 | u.FirstName = fname; | ||
324 | u.SurName = lname; | ||
325 | u.Email = email; | ||
326 | u.PasswordHash = passhash; | ||
327 | u.PasswordSalt = passsalt; | ||
328 | u.HomeRegionX = homeregx; | ||
329 | u.HomeRegionY = homeregy; | ||
330 | ulong homereg = u.HomeRegion; | ||
331 | u.HomeLocation = homeloc; | ||
332 | u.HomeLookAt = homelookat; | ||
333 | u.Created = created; | ||
334 | u.LastLogin = lastlogin; | ||
335 | u.UserInventoryURI = userinvuri; | ||
336 | u.UserAssetURI = userasseturi; | ||
337 | u.CanDoMask = candomask; | ||
338 | u.WantDoMask = wantdomask; | ||
339 | u.AboutText = abouttext; | ||
340 | u.FirstLifeAboutText = flabouttext; | ||
341 | u.Image = image; | ||
342 | u.FirstLifeImage = firstimage; | ||
343 | u.CurrentAgent = agent; | ||
344 | u.UserFlags = userflags; | ||
345 | u.GodLevel = godlevel; | ||
346 | u.CustomType = customtype; | ||
347 | u.Partner = partner; | ||
348 | |||
349 | db.UpdateUserProfile(u); | ||
350 | UserProfileData u1a = db.GetUserByUUID(id); | ||
351 | Assert.That(u1a,Is.Not.Null); | ||
352 | Assert.That(id,Is.EqualTo(u1a.ID), "Assert.That(id,Is.EqualTo(u1a.ID))"); | ||
353 | Assert.That(homeregionid,Is.EqualTo(u1a.HomeRegionID), "Assert.That(homeregionid,Is.EqualTo(u1a.HomeRegionID))"); | ||
354 | Assert.That(webloginkey,Is.EqualTo(u1a.WebLoginKey), "Assert.That(webloginkey,Is.EqualTo(u1a.WebLoginKey))"); | ||
355 | Assert.That(fname,Is.EqualTo(u1a.FirstName), "Assert.That(fname,Is.EqualTo(u1a.FirstName))"); | ||
356 | Assert.That(lname,Is.EqualTo(u1a.SurName), "Assert.That(lname,Is.EqualTo(u1a.SurName))"); | ||
357 | Assert.That(email,Is.EqualTo(u1a.Email), "Assert.That(email,Is.EqualTo(u1a.Email))"); | ||
358 | Assert.That(passhash,Is.EqualTo(u1a.PasswordHash), "Assert.That(passhash,Is.EqualTo(u1a.PasswordHash))"); | ||
359 | Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt), "Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt))"); | ||
360 | Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))"); | ||
361 | Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX), "Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX))"); | ||
362 | Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY), "Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY))"); | ||
363 | Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))"); | ||
364 | Assert.That(homeloc,Is.EqualTo(u1a.HomeLocation), "Assert.That(homeloc,Is.EqualTo(u1a.HomeLocation))"); | ||
365 | Assert.That(homelookat,Is.EqualTo(u1a.HomeLookAt), "Assert.That(homelookat,Is.EqualTo(u1a.HomeLookAt))"); | ||
366 | Assert.That(created,Is.EqualTo(u1a.Created), "Assert.That(created,Is.EqualTo(u1a.Created))"); | ||
367 | Assert.That(lastlogin,Is.EqualTo(u1a.LastLogin), "Assert.That(lastlogin,Is.EqualTo(u1a.LastLogin))"); | ||
368 | Assert.That(userasseturi,Is.EqualTo(u1a.UserAssetURI), "Assert.That(userasseturi,Is.EqualTo(u1a.UserAssetURI))"); | ||
369 | Assert.That(candomask,Is.EqualTo(u1a.CanDoMask), "Assert.That(candomask,Is.EqualTo(u1a.CanDoMask))"); | ||
370 | Assert.That(wantdomask,Is.EqualTo(u1a.WantDoMask), "Assert.That(wantdomask,Is.EqualTo(u1a.WantDoMask))"); | ||
371 | Assert.That(abouttext,Is.EqualTo(u1a.AboutText), "Assert.That(abouttext,Is.EqualTo(u1a.AboutText))"); | ||
372 | Assert.That(flabouttext,Is.EqualTo(u1a.FirstLifeAboutText), "Assert.That(flabouttext,Is.EqualTo(u1a.FirstLifeAboutText))"); | ||
373 | Assert.That(image,Is.EqualTo(u1a.Image), "Assert.That(image,Is.EqualTo(u1a.Image))"); | ||
374 | Assert.That(firstimage,Is.EqualTo(u1a.FirstLifeImage), "Assert.That(firstimage,Is.EqualTo(u1a.FirstLifeImage))"); | ||
375 | Assert.That(u1a.CurrentAgent,Is.Null); | ||
376 | Assert.That(userflags,Is.EqualTo(u1a.UserFlags), "Assert.That(userflags,Is.EqualTo(u1a.UserFlags))"); | ||
377 | Assert.That(godlevel,Is.EqualTo(u1a.GodLevel), "Assert.That(godlevel,Is.EqualTo(u1a.GodLevel))"); | ||
378 | Assert.That(customtype,Is.EqualTo(u1a.CustomType), "Assert.That(customtype,Is.EqualTo(u1a.CustomType))"); | ||
379 | Assert.That(partner,Is.EqualTo(u1a.Partner), "Assert.That(partner,Is.EqualTo(u1a.Partner))"); | ||
380 | } | ||
381 | |||
382 | [Test] | ||
383 | public void T017_UserUpdateRandomPersistency() | ||
384 | { | ||
385 | UUID id = user5; | ||
386 | UserProfileData u = db.GetUserByUUID(id); | ||
387 | new PropertyScrambler<UserProfileData>().DontScramble(x=>x.ID).Scramble(u); | ||
388 | |||
389 | db.UpdateUserProfile(u); | ||
390 | UserProfileData u1a = db.GetUserByUUID(id); | ||
391 | Assert.That(u1a, Constraints.PropertyCompareConstraint(u) | ||
392 | .IgnoreProperty(x=>x.HomeRegionX) | ||
393 | .IgnoreProperty(x=>x.HomeRegionY) | ||
394 | ); | ||
395 | } | ||
396 | |||
397 | [Test] | ||
398 | public void T020_CreateAgent() | ||
399 | { | ||
400 | UserAgentData a1 = NewAgent(user1,agent1); | ||
401 | UserAgentData a2 = NewAgent(user2,agent2); | ||
402 | UserAgentData a3 = NewAgent(user3,agent3); | ||
403 | db.AddNewUserAgent(a1); | ||
404 | db.AddNewUserAgent(a2); | ||
405 | db.AddNewUserAgent(a3); | ||
406 | UserAgentData a1a = db.GetAgentByUUID(user1); | ||
407 | UserAgentData a2a = db.GetAgentByUUID(user2); | ||
408 | UserAgentData a3a = db.GetAgentByUUID(user3); | ||
409 | Assert.That(agent1,Is.EqualTo(a1a.SessionID), "Assert.That(agent1,Is.EqualTo(a1a.SessionID))"); | ||
410 | Assert.That(user1,Is.EqualTo(a1a.ProfileID), "Assert.That(user1,Is.EqualTo(a1a.ProfileID))"); | ||
411 | Assert.That(agent2,Is.EqualTo(a2a.SessionID), "Assert.That(agent2,Is.EqualTo(a2a.SessionID))"); | ||
412 | Assert.That(user2,Is.EqualTo(a2a.ProfileID), "Assert.That(user2,Is.EqualTo(a2a.ProfileID))"); | ||
413 | Assert.That(agent3,Is.EqualTo(a3a.SessionID), "Assert.That(agent3,Is.EqualTo(a3a.SessionID))"); | ||
414 | Assert.That(user3,Is.EqualTo(a3a.ProfileID), "Assert.That(user3,Is.EqualTo(a3a.ProfileID))"); | ||
415 | } | ||
416 | |||
417 | [Test] | ||
418 | public void T021_FetchAgentByName() | ||
419 | { | ||
420 | String name3 = fname3 + " " + lname3; | ||
421 | UserAgentData a2 = db.GetAgentByName(fname2,lname2); | ||
422 | UserAgentData a3 = db.GetAgentByName(name3); | ||
423 | Assert.That(user2,Is.EqualTo(a2.ProfileID), "Assert.That(user2,Is.EqualTo(a2.ProfileID))"); | ||
424 | Assert.That(user3,Is.EqualTo(a3.ProfileID), "Assert.That(user3,Is.EqualTo(a3.ProfileID))"); | ||
425 | } | ||
426 | |||
427 | [Test] | ||
428 | public void T022_ExceptionalCases() | ||
429 | { | ||
430 | UserAgentData a0 = NewAgent(user4,zero); | ||
431 | UserAgentData a4 = NewAgent(zero,agent4); | ||
432 | db.AddNewUserAgent(a0); | ||
433 | db.AddNewUserAgent(a4); | ||
434 | |||
435 | Assert.That(db.GetAgentByUUID(user4),Is.Null); | ||
436 | Assert.That(db.GetAgentByUUID(zero),Is.Null); | ||
437 | } | ||
438 | |||
439 | [Test] | ||
440 | public void T023_AgentPersistency() | ||
441 | { | ||
442 | UUID user = user4; | ||
443 | UUID agent = agent4; | ||
444 | UUID secureagent = UUID.Random(); | ||
445 | string agentip = RandomName(); | ||
446 | uint agentport = (uint)random.Next(); | ||
447 | bool agentonline = (random.NextDouble() > 0.5); | ||
448 | int logintime = random.Next(); | ||
449 | int logouttime = random.Next(); | ||
450 | UUID regionid = UUID.Random(); | ||
451 | ulong regionhandle = (ulong) random.Next(); | ||
452 | Vector3 currentpos = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5)); | ||
453 | Vector3 currentlookat = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5)); | ||
454 | UUID orgregionid = UUID.Random(); | ||
455 | |||
456 | UserAgentData a = new UserAgentData(); | ||
457 | a.ProfileID = user; | ||
458 | a.SessionID = agent; | ||
459 | a.SecureSessionID = secureagent; | ||
460 | a.AgentIP = agentip; | ||
461 | a.AgentPort = agentport; | ||
462 | a.AgentOnline = agentonline; | ||
463 | a.LoginTime = logintime; | ||
464 | a.LogoutTime = logouttime; | ||
465 | a.Region = regionid; | ||
466 | a.Handle = regionhandle; | ||
467 | a.Position = currentpos; | ||
468 | a.LookAt = currentlookat; | ||
469 | a.InitialRegion = orgregionid; | ||
470 | |||
471 | db.AddNewUserAgent(a); | ||
472 | |||
473 | UserAgentData a1 = db.GetAgentByUUID(user4); | ||
474 | Assert.That(user,Is.EqualTo(a1.ProfileID), "Assert.That(user,Is.EqualTo(a1.ProfileID))"); | ||
475 | Assert.That(agent,Is.EqualTo(a1.SessionID), "Assert.That(agent,Is.EqualTo(a1.SessionID))"); | ||
476 | Assert.That(secureagent,Is.EqualTo(a1.SecureSessionID), "Assert.That(secureagent,Is.EqualTo(a1.SecureSessionID))"); | ||
477 | Assert.That(agentip,Is.EqualTo(a1.AgentIP), "Assert.That(agentip,Is.EqualTo(a1.AgentIP))"); | ||
478 | Assert.That(agentport,Is.EqualTo(a1.AgentPort), "Assert.That(agentport,Is.EqualTo(a1.AgentPort))"); | ||
479 | Assert.That(agentonline,Is.EqualTo(a1.AgentOnline), "Assert.That(agentonline,Is.EqualTo(a1.AgentOnline))"); | ||
480 | Assert.That(logintime,Is.EqualTo(a1.LoginTime), "Assert.That(logintime,Is.EqualTo(a1.LoginTime))"); | ||
481 | Assert.That(logouttime,Is.EqualTo(a1.LogoutTime), "Assert.That(logouttime,Is.EqualTo(a1.LogoutTime))"); | ||
482 | Assert.That(regionid,Is.EqualTo(a1.Region), "Assert.That(regionid,Is.EqualTo(a1.Region))"); | ||
483 | Assert.That(regionhandle,Is.EqualTo(a1.Handle), "Assert.That(regionhandle,Is.EqualTo(a1.Handle))"); | ||
484 | Assert.That(currentpos,Is.EqualTo(a1.Position), "Assert.That(currentpos,Is.EqualTo(a1.Position))"); | ||
485 | Assert.That(currentlookat,Is.EqualTo(a1.LookAt), "Assert.That(currentlookat,Is.EqualTo(a1.LookAt))"); | ||
486 | } | ||
487 | |||
488 | [Test] | ||
489 | public void T030_CreateFriendList() | ||
490 | { | ||
491 | Dictionary<UUID, uint> perms = new Dictionary<UUID,uint>(); | ||
492 | Dictionary<UUID, int> friends = new Dictionary<UUID,int>(); | ||
493 | uint temp; | ||
494 | int tempu1, tempu2; | ||
495 | db.AddNewUserFriend(user1,user2, 1); | ||
496 | db.AddNewUserFriend(user1,user3, 2); | ||
497 | db.AddNewUserFriend(user1,user2, 4); | ||
498 | List<FriendListItem> fl1 = db.GetUserFriendList(user1); | ||
499 | Assert.That(fl1.Count,Is.EqualTo(2), "Assert.That(fl1.Count,Is.EqualTo(2))"); | ||
500 | perms.Add(user2,1); | ||
501 | perms.Add(user3,2); | ||
502 | for (int i = 0; i < fl1.Count; i++) | ||
503 | { | ||
504 | Assert.That(user1,Is.EqualTo(fl1[i].FriendListOwner), "Assert.That(user1,Is.EqualTo(fl1[i].FriendListOwner))"); | ||
505 | friends.Add(fl1[i].Friend,1); | ||
506 | temp = perms[fl1[i].Friend]; | ||
507 | Assert.That(temp,Is.EqualTo(fl1[i].FriendPerms), "Assert.That(temp,Is.EqualTo(fl1[i].FriendPerms))"); | ||
508 | } | ||
509 | tempu1 = friends[user2]; | ||
510 | tempu2 = friends[user3]; | ||
511 | Assert.That(1,Is.EqualTo(tempu1) & Is.EqualTo(tempu2), "Assert.That(1,Is.EqualTo(tempu1) & Is.EqualTo(tempu2))"); | ||
512 | } | ||
513 | |||
514 | [Test] | ||
515 | public void T031_RemoveUserFriend() | ||
516 | // user1 has 2 friends, user2 and user3. | ||
517 | { | ||
518 | List<FriendListItem> fl1 = db.GetUserFriendList(user1); | ||
519 | List<FriendListItem> fl2 = db.GetUserFriendList(user2); | ||
520 | |||
521 | Assert.That(fl1.Count,Is.EqualTo(2), "Assert.That(fl1.Count,Is.EqualTo(2))"); | ||
522 | Assert.That(fl1[0].Friend,Is.EqualTo(user2) | Is.EqualTo(user3), "Assert.That(fl1[0].Friend,Is.EqualTo(user2) | Is.EqualTo(user3))"); | ||
523 | Assert.That(fl2[0].Friend,Is.EqualTo(user1), "Assert.That(fl2[0].Friend,Is.EqualTo(user1))"); | ||
524 | db.RemoveUserFriend(user2, user1); | ||
525 | |||
526 | fl1 = db.GetUserFriendList(user1); | ||
527 | fl2 = db.GetUserFriendList(user2); | ||
528 | Assert.That(fl1.Count,Is.EqualTo(1), "Assert.That(fl1.Count,Is.EqualTo(1))"); | ||
529 | Assert.That(fl1[0].Friend, Is.EqualTo(user3), "Assert.That(fl1[0].Friend, Is.EqualTo(user3))"); | ||
530 | Assert.That(fl2, Is.Empty); | ||
531 | } | ||
532 | |||
533 | [Test] | ||
534 | public void T032_UpdateFriendPerms() | ||
535 | // user1 has 1 friend, user3, who has permission 2 in T030. | ||
536 | { | ||
537 | List<FriendListItem> fl1 = db.GetUserFriendList(user1); | ||
538 | Assert.That(fl1[0].FriendPerms,Is.EqualTo(2), "Assert.That(fl1[0].FriendPerms,Is.EqualTo(2))"); | ||
539 | db.UpdateUserFriendPerms(user1, user3, 4); | ||
540 | |||
541 | fl1 = db.GetUserFriendList(user1); | ||
542 | Assert.That(fl1[0].FriendPerms,Is.EqualTo(4), "Assert.That(fl1[0].FriendPerms,Is.EqualTo(4))"); | ||
543 | } | ||
544 | |||
545 | [Test] | ||
546 | public void T040_UserAppearance() | ||
547 | { | ||
548 | AvatarAppearance appear = new AvatarAppearance(); | ||
549 | appear.Owner = user1; | ||
550 | db.UpdateUserAppearance(user1, appear); | ||
551 | AvatarAppearance user1app = db.GetUserAppearance(user1); | ||
552 | Assert.That(user1,Is.EqualTo(user1app.Owner), "Assert.That(user1,Is.EqualTo(user1app.Owner))"); | ||
553 | } | ||
554 | |||
555 | [Test] | ||
556 | public void T041_UserAppearancePersistency() | ||
557 | { | ||
558 | AvatarAppearance appear = new AvatarAppearance(); | ||
559 | UUID owner = UUID.Random(); | ||
560 | int serial = random.Next(); | ||
561 | byte[] visualp = new byte[218]; | ||
562 | random.NextBytes(visualp); | ||
563 | UUID bodyitem = UUID.Random(); | ||
564 | UUID bodyasset = UUID.Random(); | ||
565 | UUID skinitem = UUID.Random(); | ||
566 | UUID skinasset = UUID.Random(); | ||
567 | UUID hairitem = UUID.Random(); | ||
568 | UUID hairasset = UUID.Random(); | ||
569 | UUID eyesitem = UUID.Random(); | ||
570 | UUID eyesasset = UUID.Random(); | ||
571 | UUID shirtitem = UUID.Random(); | ||
572 | UUID shirtasset = UUID.Random(); | ||
573 | UUID pantsitem = UUID.Random(); | ||
574 | UUID pantsasset = UUID.Random(); | ||
575 | UUID shoesitem = UUID.Random(); | ||
576 | UUID shoesasset = UUID.Random(); | ||
577 | UUID socksitem = UUID.Random(); | ||
578 | UUID socksasset = UUID.Random(); | ||
579 | UUID jacketitem = UUID.Random(); | ||
580 | UUID jacketasset = UUID.Random(); | ||
581 | UUID glovesitem = UUID.Random(); | ||
582 | UUID glovesasset = UUID.Random(); | ||
583 | UUID ushirtitem = UUID.Random(); | ||
584 | UUID ushirtasset = UUID.Random(); | ||
585 | UUID upantsitem = UUID.Random(); | ||
586 | UUID upantsasset = UUID.Random(); | ||
587 | UUID skirtitem = UUID.Random(); | ||
588 | UUID skirtasset = UUID.Random(); | ||
589 | Primitive.TextureEntry texture = AvatarAppearance.GetDefaultTexture(); | ||
590 | float avatarheight = (float) (Math.Round(random.NextDouble(),5)); | ||
591 | |||
592 | appear.Owner = owner; | ||
593 | appear.Serial = serial; | ||
594 | appear.VisualParams = visualp; | ||
595 | appear.BodyItem = bodyitem; | ||
596 | appear.BodyAsset = bodyasset; | ||
597 | appear.SkinItem = skinitem; | ||
598 | appear.SkinAsset = skinasset; | ||
599 | appear.HairItem = hairitem; | ||
600 | appear.HairAsset = hairasset; | ||
601 | appear.EyesItem = eyesitem; | ||
602 | appear.EyesAsset = eyesasset; | ||
603 | appear.ShirtItem = shirtitem; | ||
604 | appear.ShirtAsset = shirtasset; | ||
605 | appear.PantsItem = pantsitem; | ||
606 | appear.PantsAsset = pantsasset; | ||
607 | appear.ShoesItem = shoesitem; | ||
608 | appear.ShoesAsset = shoesasset; | ||
609 | appear.SocksItem = socksitem; | ||
610 | appear.SocksAsset = socksasset; | ||
611 | appear.JacketItem = jacketitem; | ||
612 | appear.JacketAsset = jacketasset; | ||
613 | appear.GlovesItem = glovesitem; | ||
614 | appear.GlovesAsset = glovesasset; | ||
615 | appear.UnderShirtItem = ushirtitem; | ||
616 | appear.UnderShirtAsset = ushirtasset; | ||
617 | appear.UnderPantsItem = upantsitem; | ||
618 | appear.UnderPantsAsset = upantsasset; | ||
619 | appear.SkirtItem = skirtitem; | ||
620 | appear.SkirtAsset = skirtasset; | ||
621 | appear.Texture = texture; | ||
622 | appear.AvatarHeight = avatarheight; | ||
623 | |||
624 | db.UpdateUserAppearance(owner, appear); | ||
625 | AvatarAppearance app = db.GetUserAppearance(owner); | ||
626 | |||
627 | Assert.That(owner,Is.EqualTo(app.Owner), "Assert.That(owner,Is.EqualTo(app.Owner))"); | ||
628 | Assert.That(serial,Is.EqualTo(app.Serial), "Assert.That(serial,Is.EqualTo(app.Serial))"); | ||
629 | Assert.That(visualp,Is.EqualTo(app.VisualParams), "Assert.That(visualp,Is.EqualTo(app.VisualParams))"); | ||
630 | Assert.That(bodyitem,Is.EqualTo(app.BodyItem), "Assert.That(bodyitem,Is.EqualTo(app.BodyItem))"); | ||
631 | Assert.That(bodyasset,Is.EqualTo(app.BodyAsset), "Assert.That(bodyasset,Is.EqualTo(app.BodyAsset))"); | ||
632 | Assert.That(skinitem,Is.EqualTo(app.SkinItem), "Assert.That(skinitem,Is.EqualTo(app.SkinItem))"); | ||
633 | Assert.That(skinasset,Is.EqualTo(app.SkinAsset), "Assert.That(skinasset,Is.EqualTo(app.SkinAsset))"); | ||
634 | Assert.That(hairitem,Is.EqualTo(app.HairItem), "Assert.That(hairitem,Is.EqualTo(app.HairItem))"); | ||
635 | Assert.That(hairasset,Is.EqualTo(app.HairAsset), "Assert.That(hairasset,Is.EqualTo(app.HairAsset))"); | ||
636 | Assert.That(eyesitem,Is.EqualTo(app.EyesItem), "Assert.That(eyesitem,Is.EqualTo(app.EyesItem))"); | ||
637 | Assert.That(eyesasset,Is.EqualTo(app.EyesAsset), "Assert.That(eyesasset,Is.EqualTo(app.EyesAsset))"); | ||
638 | Assert.That(shirtitem,Is.EqualTo(app.ShirtItem), "Assert.That(shirtitem,Is.EqualTo(app.ShirtItem))"); | ||
639 | Assert.That(shirtasset,Is.EqualTo(app.ShirtAsset), "Assert.That(shirtasset,Is.EqualTo(app.ShirtAsset))"); | ||
640 | Assert.That(pantsitem,Is.EqualTo(app.PantsItem), "Assert.That(pantsitem,Is.EqualTo(app.PantsItem))"); | ||
641 | Assert.That(pantsasset,Is.EqualTo(app.PantsAsset), "Assert.That(pantsasset,Is.EqualTo(app.PantsAsset))"); | ||
642 | Assert.That(shoesitem,Is.EqualTo(app.ShoesItem), "Assert.That(shoesitem,Is.EqualTo(app.ShoesItem))"); | ||
643 | Assert.That(shoesasset,Is.EqualTo(app.ShoesAsset), "Assert.That(shoesasset,Is.EqualTo(app.ShoesAsset))"); | ||
644 | Assert.That(socksitem,Is.EqualTo(app.SocksItem), "Assert.That(socksitem,Is.EqualTo(app.SocksItem))"); | ||
645 | Assert.That(socksasset,Is.EqualTo(app.SocksAsset), "Assert.That(socksasset,Is.EqualTo(app.SocksAsset))"); | ||
646 | Assert.That(jacketitem,Is.EqualTo(app.JacketItem), "Assert.That(jacketitem,Is.EqualTo(app.JacketItem))"); | ||
647 | Assert.That(jacketasset,Is.EqualTo(app.JacketAsset), "Assert.That(jacketasset,Is.EqualTo(app.JacketAsset))"); | ||
648 | Assert.That(glovesitem,Is.EqualTo(app.GlovesItem), "Assert.That(glovesitem,Is.EqualTo(app.GlovesItem))"); | ||
649 | Assert.That(glovesasset,Is.EqualTo(app.GlovesAsset), "Assert.That(glovesasset,Is.EqualTo(app.GlovesAsset))"); | ||
650 | Assert.That(ushirtitem,Is.EqualTo(app.UnderShirtItem), "Assert.That(ushirtitem,Is.EqualTo(app.UnderShirtItem))"); | ||
651 | Assert.That(ushirtasset,Is.EqualTo(app.UnderShirtAsset), "Assert.That(ushirtasset,Is.EqualTo(app.UnderShirtAsset))"); | ||
652 | Assert.That(upantsitem,Is.EqualTo(app.UnderPantsItem), "Assert.That(upantsitem,Is.EqualTo(app.UnderPantsItem))"); | ||
653 | Assert.That(upantsasset,Is.EqualTo(app.UnderPantsAsset), "Assert.That(upantsasset,Is.EqualTo(app.UnderPantsAsset))"); | ||
654 | Assert.That(skirtitem,Is.EqualTo(app.SkirtItem), "Assert.That(skirtitem,Is.EqualTo(app.SkirtItem))"); | ||
655 | Assert.That(skirtasset,Is.EqualTo(app.SkirtAsset), "Assert.That(skirtasset,Is.EqualTo(app.SkirtAsset))"); | ||
656 | Assert.That(texture.ToString(),Is.EqualTo(app.Texture.ToString()), "Assert.That(texture.ToString(),Is.EqualTo(app.Texture.ToString()))"); | ||
657 | Assert.That(avatarheight,Is.EqualTo(app.AvatarHeight), "Assert.That(avatarheight,Is.EqualTo(app.AvatarHeight))"); | ||
658 | } | ||
659 | |||
660 | [Test] | ||
661 | public void T999_StillNull() | ||
662 | { | ||
663 | Assert.That(db.GetUserByUUID(zero), Is.Null); | ||
664 | Assert.That(db.GetAgentByUUID(zero), Is.Null); | ||
665 | } | ||
666 | |||
667 | public UserProfileData NewUser(UUID id,string fname,string lname) | ||
668 | { | ||
669 | UserProfileData u = new UserProfileData(); | ||
670 | u.ID = id; | ||
671 | u.FirstName = fname; | ||
672 | u.SurName = lname; | ||
673 | u.PasswordHash = "NOTAHASH"; | ||
674 | u.PasswordSalt = "NOTSALT"; | ||
675 | // MUST specify at least these 5 parameters or an exception is raised | ||
676 | |||
677 | return u; | ||
678 | } | ||
679 | |||
680 | public UserAgentData NewAgent(UUID user_profile, UUID agent) | ||
681 | { | ||
682 | UserAgentData a = new UserAgentData(); | ||
683 | a.ProfileID = user_profile; | ||
684 | a.SessionID = agent; | ||
685 | a.SecureSessionID = UUID.Random(); | ||
686 | a.AgentIP = RandomName(); | ||
687 | return a; | ||
688 | } | ||
689 | |||
690 | public static string RandomName() | ||
691 | { | ||
692 | StringBuilder name = new StringBuilder(); | ||
693 | int size = random.Next(5,12); | ||
694 | char ch ; | ||
695 | for (int i=0; i<size; i++) | ||
696 | { | ||
697 | ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))) ; | ||
698 | name.Append(ch); | ||
699 | } | ||
700 | return name.ToString(); | ||
701 | } | ||
702 | } | ||
703 | } | ||