opensim-development – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | eva | 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 OpenMetaverse; |
||
30 | using OpenMetaverse.StructuredData; |
||
31 | using NUnit.Framework; |
||
32 | using OpenSim.Tests.Common; |
||
33 | |||
34 | namespace OpenSim.Framework.Tests |
||
35 | { |
||
36 | [TestFixture] |
||
37 | public class AgentCircuitDataTest : OpenSimTestCase |
||
38 | { |
||
39 | private UUID AgentId; |
||
40 | private AvatarAppearance AvAppearance; |
||
41 | private byte[] VisualParams; |
||
42 | private UUID BaseFolder; |
||
43 | private string CapsPath; |
||
44 | private Dictionary<ulong, string> ChildrenCapsPaths; |
||
45 | private uint circuitcode = 0949030; |
||
46 | private string firstname; |
||
47 | private string lastname; |
||
48 | private UUID SecureSessionId; |
||
49 | private UUID SessionId; |
||
50 | private Vector3 StartPos; |
||
51 | |||
52 | |||
53 | [SetUp] |
||
54 | public void setup() |
||
55 | { |
||
56 | AgentId = UUID.Random(); |
||
57 | BaseFolder = UUID.Random(); |
||
58 | CapsPath = "http://www.opensimulator.org/Caps/Foo"; |
||
59 | ChildrenCapsPaths = new Dictionary<ulong, string>(); |
||
60 | ChildrenCapsPaths.Add(ulong.MaxValue, "http://www.opensimulator.org/Caps/Foo2"); |
||
61 | firstname = "CoolAvatarTest"; |
||
62 | lastname = "test"; |
||
63 | StartPos = new Vector3(5,23,125); |
||
64 | |||
65 | SecureSessionId = UUID.Random(); |
||
66 | SessionId = UUID.Random(); |
||
67 | |||
68 | AvAppearance = new AvatarAppearance(); |
||
69 | VisualParams = new byte[218]; |
||
70 | |||
71 | //body |
||
72 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEIGHT] = 155; |
||
73 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_THICKNESS] = 00; |
||
74 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BODY_FAT] = 0; |
||
75 | |||
76 | //Torso |
||
77 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_TORSO_MUSCLES] = 48; |
||
78 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_NECK_THICKNESS] = 43; |
||
79 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_NECK_LENGTH] = 255; |
||
80 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SHOULDERS] = 94; |
||
81 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_CHEST_MALE_NO_PECS] = 199; |
||
82 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_ARM_LENGTH] = 255; |
||
83 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HAND_SIZE] = 33; |
||
84 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_TORSO_LENGTH] = 240; |
||
85 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LOVE_HANDLES] = 0; |
||
86 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BELLY_SIZE] = 0; |
||
87 | |||
88 | // legs |
||
89 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LEG_MUSCLES] = 82; |
||
90 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LEG_LENGTH] = 255; |
||
91 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HIP_WIDTH] = 84; |
||
92 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HIP_LENGTH] = 166; |
||
93 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BUTT_SIZE] = 64; |
||
94 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SADDLEBAGS] = 89; |
||
95 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BOWED_LEGS] = 127; |
||
96 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOOT_SIZE] = 45; |
||
97 | |||
98 | |||
99 | // head |
||
100 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SIZE] = 255; |
||
101 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SQUASH_STRETCH_HEAD] = 0; // head stretch |
||
102 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SHAPE] = 155; |
||
103 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EGG_HEAD] = 127; |
||
104 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_POINTY_EARS] = 255; |
||
105 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_LENGTH] = 45; |
||
106 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FACE_SHEAR] = 127; |
||
107 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOREHEAD_ANGLE] = 104; |
||
108 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BIG_BROW] = 94; |
||
109 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_PUFFY_UPPER_CHEEKS] = 0; // upper cheeks |
||
110 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_DOUBLE_CHIN] = 122; // lower cheeks |
||
111 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HIGH_CHEEK_BONES] = 130; |
||
112 | |||
113 | |||
114 | |||
115 | // eyes |
||
116 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYE_SIZE] = 105; |
||
117 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_WIDE_EYES] = 135; |
||
118 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYE_SPACING] = 184; |
||
119 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYELID_CORNER_UP] = 230; |
||
120 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYELID_INNER_CORNER_UP] = 120; |
||
121 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYE_DEPTH] = 158; |
||
122 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_UPPER_EYELID_FOLD] = 69; |
||
123 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BAGGY_EYES] = 38; |
||
124 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EYELASHES_LONG] = 127; |
||
125 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_POP_EYE] = 127; |
||
126 | |||
127 | VisualParams[(int)AvatarAppearance.VPElement.EYES_EYE_COLOR] = 25; |
||
128 | VisualParams[(int)AvatarAppearance.VPElement.EYES_EYE_LIGHTNESS] = 127; |
||
129 | |||
130 | // ears |
||
131 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BIG_EARS] = 255; |
||
132 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_EARS_OUT] = 127; |
||
133 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_ATTACHED_EARLOBES] = 127; |
||
134 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_POINTY_EARS] = 255; |
||
135 | |||
136 | // nose |
||
137 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_NOSE_BIG_OUT] = 79; |
||
138 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_WIDE_NOSE] = 35; |
||
139 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BROAD_NOSTRILS] = 86; |
||
140 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LOW_SEPTUM_NOSE] = 112; // nostril division |
||
141 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BULBOUS_NOSE] = 25; |
||
142 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_NOBLE_NOSE_BRIDGE] = 25; // upper bridge |
||
143 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LOWER_BRIDGE_NOSE] = 25; // lower bridge |
||
144 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_WIDE_NOSE_BRIDGE] = 25; |
||
145 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_UPTURNED_NOSE_TIP] = 107; |
||
146 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BULBOUS_NOSE_TIP] = 25; |
||
147 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_CROOKED_NOSE] = 127; |
||
148 | |||
149 | |||
150 | // Mouth |
||
151 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LIP_WIDTH] = 122; |
||
152 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_TALL_LIPS] = 10; // lip fullness |
||
153 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LIP_THICKNESS] = 112; |
||
154 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LIP_RATIO] = 137; |
||
155 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_MOUTH_HEIGHT] = 176; |
||
156 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_MOUTH_CORNER] = 140; // Sad --> happy |
||
157 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_LIP_CLEFT_DEEP] = 84; |
||
158 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_WIDE_LIP_CLEFT] = 84; |
||
159 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SHIFT_MOUTH] = 127; |
||
160 | |||
161 | |||
162 | // chin |
||
163 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_WEAK_CHIN] = 119; |
||
164 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SQUARE_JAW] = 5; |
||
165 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_DEEP_CHIN] = 132; |
||
166 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_JAW_ANGLE] = 153; |
||
167 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_JAW_JUT] = 100; |
||
168 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_JOWLS] = 38; |
||
169 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_CLEFT_CHIN] = 89; |
||
170 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_CLEFT_CHIN_UPPER] = 89; |
||
171 | VisualParams[(int)AvatarAppearance.VPElement.SHAPE_DOUBLE_CHIN] = 0; |
||
172 | |||
173 | |||
174 | // hair color |
||
175 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_WHITE_HAIR] = 0; |
||
176 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_RAINBOW_COLOR_39] = 0; |
||
177 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_BLONDE_HAIR] = 24; |
||
178 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_RED_HAIR] = 0; |
||
179 | |||
180 | // hair style |
||
181 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_VOLUME] = 160; |
||
182 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_FRONT] = 153; |
||
183 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SIDES] = 153; |
||
184 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_BACK] = 170; |
||
185 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_BIG_FRONT] = 0; |
||
186 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_BIG_TOP] = 117; |
||
187 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_BIG_BACK] = 170; |
||
188 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_FRONT_FRINGE] = 0; |
||
189 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_SIDE_FRINGE] = 142; |
||
190 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_BACK_FRINGE] = 0; |
||
191 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SIDES_FULL] = 146; |
||
192 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SWEEP] = 0; |
||
193 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SHEAR_FRONT] = 0; |
||
194 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SHEAR_BACK] = 0; |
||
195 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_TAPER_FRONT] = 0; |
||
196 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_TAPER_BACK] = 0; |
||
197 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_RUMPLED] = 0; |
||
198 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_PIGTAILS] = 0; |
||
199 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_PONYTAIL] = 0; |
||
200 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_SPIKED] = 0; |
||
201 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_TILT] = 0; |
||
202 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_PART_MIDDLE] = 0; |
||
203 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_PART_RIGHT] = 0; |
||
204 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_PART_LEFT] = 0; |
||
205 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_BANGS_PART_MIDDLE] = 155; |
||
206 | |||
207 | //Eyebrows |
||
208 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_EYEBROW_SIZE] = 20; |
||
209 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_EYEBROW_DENSITY] = 140; |
||
210 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_LOWER_EYEBROWS] = 200; // eyebrow height |
||
211 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_ARCED_EYEBROWS] = 124; |
||
212 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_POINTY_EYEBROWS] = 65; |
||
213 | |||
214 | //Facial hair |
||
215 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_HAIR_THICKNESS] = 65; |
||
216 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_SIDEBURNS] = 235; |
||
217 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_MOUSTACHE] = 75; |
||
218 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_CHIN_CURTAINS] = 140; |
||
219 | VisualParams[(int)AvatarAppearance.VPElement.HAIR_SOULPATCH] = 0; |
||
220 | |||
221 | AvAppearance.VisualParams = VisualParams; |
||
222 | |||
223 | List<byte> wearbyte = new List<byte>(); |
||
224 | for (int i = 0; i < VisualParams.Length; i++) |
||
225 | { |
||
226 | wearbyte.Add(VisualParams[i]); |
||
227 | } |
||
228 | |||
229 | AvAppearance.SetAppearance(AvAppearance.Texture, (byte[])VisualParams.Clone()); |
||
230 | } |
||
231 | |||
232 | /// <summary> |
||
233 | /// Test to ensure that the serialization format is the same and the underlying types don't change without notice |
||
234 | /// oldSerialization is just a json serialization of the OSDMap packed for the AgentCircuitData. |
||
235 | /// The idea is that if the current json serializer cannot parse the old serialization, then the underlying types |
||
236 | /// have changed and are incompatible. |
||
237 | /// </summary> |
||
238 | [Test] |
||
239 | public void HistoricalAgentCircuitDataOSDConversion() |
||
240 | { |
||
241 | string oldSerialization = "{\"agent_id\":\"522675bd-8214-40c1-b3ca-9c7f7fd170be\",\"base_folder\":\"c40b5f5f-476f-496b-bd69-b5a539c434d8\",\"caps_path\":\"http://www.opensimulator.org/Caps/Foo\",\"children_seeds\":[{\"handle\":\"18446744073709551615\",\"seed\":\"http://www.opensimulator.org/Caps/Foo2\"}],\"child\":false,\"circuit_code\":\"949030\",\"first_name\":\"CoolAvatarTest\",\"last_name\":\"test\",\"inventory_folder\":\"c40b5f5f-476f-496b-bd69-b5a539c434d8\",\"secure_session_id\":\"1e608e2b-0ddb-41f6-be0f-926f61cd3e0a\",\"session_id\":\"aa06f798-9d70-4bdb-9bbf-012a02ee2baf\",\"start_pos\":\"<5, 23, 125>\"}"; |
||
242 | AgentCircuitData Agent1Data = new AgentCircuitData(); |
||
243 | Agent1Data.AgentID = new UUID("522675bd-8214-40c1-b3ca-9c7f7fd170be"); |
||
244 | Agent1Data.Appearance = AvAppearance; |
||
245 | Agent1Data.BaseFolder = new UUID("c40b5f5f-476f-496b-bd69-b5a539c434d8"); |
||
246 | Agent1Data.CapsPath = CapsPath; |
||
247 | Agent1Data.child = false; |
||
248 | Agent1Data.ChildrenCapSeeds = ChildrenCapsPaths; |
||
249 | Agent1Data.circuitcode = circuitcode; |
||
250 | Agent1Data.firstname = firstname; |
||
251 | Agent1Data.InventoryFolder = new UUID("c40b5f5f-476f-496b-bd69-b5a539c434d8"); |
||
252 | Agent1Data.lastname = lastname; |
||
253 | Agent1Data.SecureSessionID = new UUID("1e608e2b-0ddb-41f6-be0f-926f61cd3e0a"); |
||
254 | Agent1Data.SessionID = new UUID("aa06f798-9d70-4bdb-9bbf-012a02ee2baf"); |
||
255 | Agent1Data.startpos = StartPos; |
||
256 | |||
257 | |||
258 | OSDMap map2; |
||
259 | try |
||
260 | { |
||
261 | map2 = (OSDMap) OSDParser.DeserializeJson(oldSerialization); |
||
262 | |||
263 | |||
264 | AgentCircuitData Agent2Data = new AgentCircuitData(); |
||
265 | Agent2Data.UnpackAgentCircuitData(map2); |
||
266 | |||
267 | Assert.That((Agent1Data.AgentID == Agent2Data.AgentID)); |
||
268 | Assert.That((Agent1Data.BaseFolder == Agent2Data.BaseFolder)); |
||
269 | |||
270 | Assert.That((Agent1Data.CapsPath == Agent2Data.CapsPath)); |
||
271 | Assert.That((Agent1Data.child == Agent2Data.child)); |
||
272 | Assert.That((Agent1Data.ChildrenCapSeeds.Count == Agent2Data.ChildrenCapSeeds.Count)); |
||
273 | Assert.That((Agent1Data.circuitcode == Agent2Data.circuitcode)); |
||
274 | Assert.That((Agent1Data.firstname == Agent2Data.firstname)); |
||
275 | Assert.That((Agent1Data.InventoryFolder == Agent2Data.InventoryFolder)); |
||
276 | Assert.That((Agent1Data.lastname == Agent2Data.lastname)); |
||
277 | Assert.That((Agent1Data.SecureSessionID == Agent2Data.SecureSessionID)); |
||
278 | Assert.That((Agent1Data.SessionID == Agent2Data.SessionID)); |
||
279 | Assert.That((Agent1Data.startpos == Agent2Data.startpos)); |
||
280 | } |
||
281 | catch (LitJson.JsonException) |
||
282 | { |
||
283 | //intermittant litjson errors :P |
||
284 | Assert.That(1 == 1); |
||
285 | } |
||
286 | /* |
||
287 | Enable this once VisualParams go in the packing method |
||
288 | for (int i=0;i<208;i++) |
||
289 | Assert.That((Agent1Data.Appearance.VisualParams[i] == Agent2Data.Appearance.VisualParams[i])); |
||
290 | */ |
||
291 | } |
||
292 | |||
293 | /// <summary> |
||
294 | /// Test to ensure that the packing and unpacking methods work. |
||
295 | /// </summary> |
||
296 | [Test] |
||
297 | public void TestAgentCircuitDataOSDConversion() |
||
298 | { |
||
299 | AgentCircuitData Agent1Data = new AgentCircuitData(); |
||
300 | Agent1Data.AgentID = AgentId; |
||
301 | Agent1Data.Appearance = AvAppearance; |
||
302 | Agent1Data.BaseFolder = BaseFolder; |
||
303 | Agent1Data.CapsPath = CapsPath; |
||
304 | Agent1Data.child = false; |
||
305 | Agent1Data.ChildrenCapSeeds = ChildrenCapsPaths; |
||
306 | Agent1Data.circuitcode = circuitcode; |
||
307 | Agent1Data.firstname = firstname; |
||
308 | Agent1Data.InventoryFolder = BaseFolder; |
||
309 | Agent1Data.lastname = lastname; |
||
310 | Agent1Data.SecureSessionID = SecureSessionId; |
||
311 | Agent1Data.SessionID = SessionId; |
||
312 | Agent1Data.startpos = StartPos; |
||
313 | |||
314 | OSDMap map2; |
||
315 | OSDMap map = Agent1Data.PackAgentCircuitData(); |
||
316 | try |
||
317 | { |
||
318 | string str = OSDParser.SerializeJsonString(map); |
||
319 | //System.Console.WriteLine(str); |
||
320 | map2 = (OSDMap) OSDParser.DeserializeJson(str); |
||
321 | } |
||
322 | catch (System.NullReferenceException) |
||
323 | { |
||
324 | //spurious litjson errors :P |
||
325 | map2 = map; |
||
326 | Assert.That(1==1); |
||
327 | return; |
||
328 | } |
||
329 | |||
330 | AgentCircuitData Agent2Data = new AgentCircuitData(); |
||
331 | Agent2Data.UnpackAgentCircuitData(map2); |
||
332 | |||
333 | Assert.That((Agent1Data.AgentID == Agent2Data.AgentID)); |
||
334 | Assert.That((Agent1Data.BaseFolder == Agent2Data.BaseFolder)); |
||
335 | |||
336 | Assert.That((Agent1Data.CapsPath == Agent2Data.CapsPath)); |
||
337 | Assert.That((Agent1Data.child == Agent2Data.child)); |
||
338 | Assert.That((Agent1Data.ChildrenCapSeeds.Count == Agent2Data.ChildrenCapSeeds.Count)); |
||
339 | Assert.That((Agent1Data.circuitcode == Agent2Data.circuitcode)); |
||
340 | Assert.That((Agent1Data.firstname == Agent2Data.firstname)); |
||
341 | Assert.That((Agent1Data.InventoryFolder == Agent2Data.InventoryFolder)); |
||
342 | Assert.That((Agent1Data.lastname == Agent2Data.lastname)); |
||
343 | Assert.That((Agent1Data.SecureSessionID == Agent2Data.SecureSessionID)); |
||
344 | Assert.That((Agent1Data.SessionID == Agent2Data.SessionID)); |
||
345 | Assert.That((Agent1Data.startpos == Agent2Data.startpos)); |
||
346 | |||
347 | /* |
||
348 | Enable this once VisualParams go in the packing method |
||
349 | for (int i = 0; i < 208; i++) |
||
350 | Assert.That((Agent1Data.Appearance.VisualParams[i] == Agent2Data.Appearance.VisualParams[i])); |
||
351 | */ |
||
352 | |||
353 | |||
354 | } |
||
355 | } |
||
356 | } |