aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs261
1 files changed, 261 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
new file mode 100644
index 0000000..7da28dd
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
@@ -0,0 +1,261 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Collections.Generic;
29using NUnit.Framework;
30using OpenSim.Tests.Common;
31using OpenSim.Region.ScriptEngine.Shared;
32
33namespace OpenSim.Region.ScriptEngine.Shared.Tests
34{
35 /// <summary>
36 /// Tests the LSL_Types.list class.
37 /// </summary>
38 [TestFixture]
39 public class LSL_TypesTestList
40 {
41 /// <summary>
42 /// Tests concatenating a string to a list.
43 /// </summary>
44 [Test]
45 public void TestConcatenateString()
46 {
47 LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
48 testList += new LSL_Types.LSLString("addition");
49
50 Assert.AreEqual(4, testList.Length);
51 Assert.AreEqual(new LSL_Types.LSLString("addition"), testList.Data[3]);
52 Assert.AreEqual(typeof(LSL_Types.LSLString), testList.Data[3].GetType());
53
54 LSL_Types.list secondTestList = testList + new LSL_Types.LSLString("more");
55
56 Assert.AreEqual(5, secondTestList.Length);
57 Assert.AreEqual(new LSL_Types.LSLString("more"), secondTestList.Data[4]);
58 Assert.AreEqual(typeof(LSL_Types.LSLString), secondTestList.Data[4].GetType());
59 }
60
61 /// <summary>
62 /// Tests concatenating an integer to a list.
63 /// </summary>
64 [Test]
65 public void TestConcatenateInteger()
66 {
67 LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
68 testList += new LSL_Types.LSLInteger(20);
69
70 Assert.AreEqual(4, testList.Length);
71 Assert.AreEqual(new LSL_Types.LSLInteger(20), testList.Data[3]);
72 Assert.AreEqual(typeof(LSL_Types.LSLInteger), testList.Data[3].GetType());
73
74 LSL_Types.list secondTestList = testList + new LSL_Types.LSLInteger(2);
75
76 Assert.AreEqual(5, secondTestList.Length);
77 Assert.AreEqual(new LSL_Types.LSLInteger(2), secondTestList.Data[4]);
78 Assert.AreEqual(typeof(LSL_Types.LSLInteger), secondTestList.Data[4].GetType());
79 }
80
81 /// <summary>
82 /// Tests concatenating a float to a list.
83 /// </summary>
84 [Test]
85 public void TestConcatenateDouble()
86 {
87 LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
88 testList += new LSL_Types.LSLFloat(2.0f);
89
90 Assert.AreEqual(4, testList.Length);
91 Assert.AreEqual(new LSL_Types.LSLFloat(2.0f), testList.Data[3]);
92 Assert.AreEqual(typeof(LSL_Types.LSLFloat), testList.Data[3].GetType());
93
94 LSL_Types.list secondTestList = testList + new LSL_Types.LSLFloat(0.04f);
95
96 Assert.AreEqual(5, secondTestList.Length);
97 Assert.AreEqual(new LSL_Types.LSLFloat(0.04f), secondTestList.Data[4]);
98 Assert.AreEqual(typeof(LSL_Types.LSLFloat), secondTestList.Data[4].GetType());
99 }
100
101 /// <summary>
102 /// Tests casting LSLInteger item to LSLInteger.
103 /// </summary>
104 [Test]
105 public void TestCastLSLIntegerItemToLSLInteger()
106 {
107 LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(123);
108 LSL_Types.list testList = new LSL_Types.list(testValue);
109
110 Assert.AreEqual(testValue, (LSL_Types.LSLInteger)testList.Data[0]);
111 }
112
113 /// <summary>
114 /// Tests casting LSLFloat item to LSLFloat.
115 /// </summary>
116 [Test]
117 public void TestCastLSLFloatItemToLSLFloat()
118 {
119 LSL_Types.LSLFloat testValue = new LSL_Types.LSLFloat(123.45678987);
120 LSL_Types.list testList = new LSL_Types.list(testValue);
121
122 Assert.AreEqual(testValue, (LSL_Types.LSLFloat)testList.Data[0]);
123 }
124
125 /// <summary>
126 /// Tests casting LSLString item to LSLString.
127 /// </summary>
128 [Test]
129 public void TestCastLSLStringItemToLSLString()
130 {
131 LSL_Types.LSLString testValue = new LSL_Types.LSLString("hello there");
132 LSL_Types.list testList = new LSL_Types.list(testValue);
133
134 Assert.AreEqual(testValue, (LSL_Types.LSLString)testList.Data[0]);
135 }
136
137 /// <summary>
138 /// Tests casting Vector3 item to Vector3.
139 /// </summary>
140 [Test]
141 public void TestCastVector3ItemToVector3()
142 {
143 LSL_Types.Vector3 testValue = new LSL_Types.Vector3(12.34, 56.987654, 0.00987);
144 LSL_Types.list testList = new LSL_Types.list(testValue);
145
146 Assert.AreEqual(testValue, (LSL_Types.Vector3)testList.Data[0]);
147 }
148 /// <summary>
149 /// Tests casting Quaternion item to Quaternion.
150 /// </summary>
151 [Test]
152 public void TestCastQuaternionItemToQuaternion()
153 {
154 LSL_Types.Quaternion testValue = new LSL_Types.Quaternion(12.34, 56.44323, 765.983421, 0.00987);
155 LSL_Types.list testList = new LSL_Types.list(testValue);
156
157 Assert.AreEqual(testValue, (LSL_Types.Quaternion)testList.Data[0]);
158 }
159
160//====================================================================================
161
162 /// <summary>
163 /// Tests GetLSLIntegerItem for LSLInteger item.
164 /// </summary>
165 [Test]
166 public void TestGetLSLIntegerItemForLSLIntegerItem()
167 {
168 LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(999911);
169 LSL_Types.list testList = new LSL_Types.list(testValue);
170
171 Assert.AreEqual(testValue, testList.GetLSLIntegerItem(0));
172 }
173
174 /// <summary>
175 /// Tests GetLSLFloatItem for LSLFloat item.
176 /// </summary>
177 [Test]
178 public void TestGetLSLFloatItemForLSLFloatItem()
179 {
180 LSL_Types.LSLFloat testValue = new LSL_Types.LSLFloat(321.45687876);
181 LSL_Types.list testList = new LSL_Types.list(testValue);
182
183 Assert.AreEqual(testValue, testList.GetLSLFloatItem(0));
184 }
185
186 /// <summary>
187 /// Tests GetLSLFloatItem for LSLInteger item.
188 /// </summary>
189 [Test]
190 public void TestGetLSLFloatItemForLSLIntegerItem()
191 {
192 LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(3060987);
193 LSL_Types.LSLFloat testFloatValue = new LSL_Types.LSLFloat(testValue);
194 LSL_Types.list testList = new LSL_Types.list(testValue);
195
196 Assert.AreEqual(testFloatValue, testList.GetLSLFloatItem(0));
197 }
198
199 /// <summary>
200 /// Tests GetLSLStringItem for LSLString item.
201 /// </summary>
202 [Test]
203 public void TestGetLSLStringItemForLSLStringItem()
204 {
205 LSL_Types.LSLString testValue = new LSL_Types.LSLString("hello all");
206 LSL_Types.list testList = new LSL_Types.list(testValue);
207
208 Assert.AreEqual(testValue, testList.GetLSLStringItem(0));
209 }
210
211 /// <summary>
212 /// Tests GetLSLStringItem for key item.
213 /// </summary>
214 [Test]
215 public void TestGetLSLStringItemForKeyItem()
216 {
217 LSL_Types.key testValue
218 = new LSL_Types.key("98000000-0000-2222-3333-100000001000");
219 LSL_Types.LSLString testStringValue = new LSL_Types.LSLString(testValue);
220 LSL_Types.list testList = new LSL_Types.list(testValue);
221
222 Assert.AreEqual(testStringValue, testList.GetLSLStringItem(0));
223 }
224
225 /// <summary>
226 /// Tests GetVector3Item for Vector3 item.
227 /// </summary>
228 [Test]
229 public void TestGetVector3ItemForVector3Item()
230 {
231 LSL_Types.Vector3 testValue = new LSL_Types.Vector3(92.34, 58.98754, -0.10987);
232 LSL_Types.list testList = new LSL_Types.list(testValue);
233
234 Assert.AreEqual(testValue, testList.GetVector3Item(0));
235 }
236 /// <summary>
237 /// Tests GetQuaternionItem for Quaternion item.
238 /// </summary>
239 [Test]
240 public void TestGetQuaternionItemForQuaternionItem()
241 {
242 LSL_Types.Quaternion testValue = new LSL_Types.Quaternion(12.64, 59.43723, 765.3421, 4.00987);
243 LSL_Types.list testList = new LSL_Types.list(testValue);
244
245 Assert.AreEqual(testValue, testList.GetQuaternionItem(0));
246 }
247
248 /// <summary>
249 /// Tests GetKeyItem for key item.
250 /// </summary>
251 [Test]
252 public void TestGetKeyItemForKeyItem()
253 {
254 LSL_Types.key testValue
255 = new LSL_Types.key("00000000-0000-2222-3333-100000001012");
256 LSL_Types.list testList = new LSL_Types.list(testValue);
257
258 Assert.AreEqual(testValue, testList.GetKeyItem(0));
259 }
260 }
261}