aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs')
-rw-r--r--OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs162
1 files changed, 162 insertions, 0 deletions
diff --git a/OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs b/OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs
new file mode 100644
index 0000000..9e8d716
--- /dev/null
+++ b/OpenSim/Tests/Region/ScriptEngine/Shared/LSL_TypesTestList.cs
@@ -0,0 +1,162 @@
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(1, 'a', "test");
48 testList += "addition";
49
50 Assert.AreEqual(4, testList.Length);
51 Assert.AreEqual("addition", testList.Data[3]);
52 Assert.AreEqual(typeof(System.String), testList.Data[3].GetType());
53
54 LSL_Types.list secondTestList = testList + "more";
55
56 Assert.AreEqual(5, secondTestList.Length);
57 Assert.AreEqual("more", secondTestList.Data[4]);
58 Assert.AreEqual(typeof(System.String), 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(1, 'a', "test");
68 testList += 20;
69
70 Assert.AreEqual(4, testList.Length);
71 Assert.AreEqual(20, testList.Data[3]);
72 Assert.AreEqual(typeof(int), testList.Data[3].GetType());
73
74 LSL_Types.list secondTestList = testList + 2;
75
76 Assert.AreEqual(5, secondTestList.Length);
77 Assert.AreEqual(2, secondTestList.Data[4]);
78 Assert.AreEqual(typeof(int), secondTestList.Data[4].GetType());
79 }
80
81 /// <summary>
82 /// Tests concatenating a double to a list.
83 /// </summary>
84 [Test]
85 public void TestConcatenateDouble()
86 {
87 LSL_Types.list testList = new LSL_Types.list(1, 'a', "test");
88 testList += 2.0;
89
90 Assert.AreEqual(4, testList.Length);
91 Assert.AreEqual(2.0, testList.Data[3]);
92 Assert.AreEqual(typeof(double), testList.Data[3].GetType());
93
94 LSL_Types.list secondTestList = testList + 0.04;
95
96 Assert.AreEqual(5, secondTestList.Length);
97 Assert.AreEqual(0.04, secondTestList.Data[4]);
98 Assert.AreEqual(typeof(double), 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}