Skip to content

Commit 56596ee

Browse files
committed
added unittest for B2UserData
1 parent b0c6a9a commit 56596ee

File tree

2 files changed

+98
-1
lines changed

2 files changed

+98
-1
lines changed

src/Box2D.NET/B2UserData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public static B2UserData Signed(long i)
8181
return new B2UserData(i);
8282
}
8383

84-
public static B2UserData Unsinged(ulong u)
84+
public static B2UserData Unsigned(ulong u)
8585
{
8686
return new B2UserData(u);
8787
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
using NUnit.Framework;
2+
using Box2D.NET;
3+
4+
namespace Box2D.NET.Test
5+
{
6+
public class B2UserDataTest
7+
{
8+
[Test]
9+
public void TestEmpty()
10+
{
11+
var userData = B2UserData.Empty;
12+
Assert.That(userData.IsEmpty(), Is.True);
13+
Assert.That(userData.GetSigned(), Is.EqualTo(0));
14+
Assert.That(userData.GetUnsigned(), Is.EqualTo(0));
15+
Assert.That(userData.GetDouble(), Is.EqualTo(0.0));
16+
Assert.That(userData.GetRef<object>(), Is.Null);
17+
}
18+
19+
[Test]
20+
public void TestSigned()
21+
{
22+
long value = -1234567890L;
23+
var userData = B2UserData.Signed(value);
24+
25+
Assert.That(userData.IsEmpty(), Is.False);
26+
Assert.That(userData.type, Is.EqualTo(B2UserDataType.Signed));
27+
Assert.That(userData.GetSigned(), Is.EqualTo(value));
28+
29+
// Default value check
30+
Assert.That(userData.GetUnsigned(123), Is.EqualTo(123));
31+
Assert.That(userData.GetDouble(1.23), Is.EqualTo(1.23));
32+
Assert.That(userData.GetRef<string>(), Is.Null);
33+
}
34+
35+
[Test]
36+
public void TestUnsigned()
37+
{
38+
ulong value = 1234567890UL;
39+
var userData = B2UserData.Unsigned(value);
40+
41+
Assert.That(userData.IsEmpty(), Is.False);
42+
Assert.That(userData.type, Is.EqualTo(B2UserDataType.Unsigned));
43+
Assert.That(userData.GetUnsigned(), Is.EqualTo(value));
44+
45+
// Default value check
46+
Assert.That(userData.GetSigned(-1), Is.EqualTo(-1));
47+
Assert.That(userData.GetDouble(1.23), Is.EqualTo(1.23));
48+
Assert.That(userData.GetRef<string>(), Is.Null);
49+
}
50+
51+
[Test]
52+
public void TestDouble()
53+
{
54+
double value = 3.14159;
55+
var userData = B2UserData.Double(value);
56+
57+
Assert.That(userData.IsEmpty(), Is.False);
58+
Assert.That(userData.type, Is.EqualTo(B2UserDataType.Double));
59+
Assert.That(userData.GetDouble(), Is.EqualTo(value));
60+
61+
// Default value check
62+
Assert.That(userData.GetSigned(-1), Is.EqualTo(-1));
63+
Assert.That(userData.GetUnsigned(123), Is.EqualTo(123));
64+
Assert.That(userData.GetRef<string>(), Is.Null);
65+
}
66+
67+
[Test]
68+
public void TestRef()
69+
{
70+
string value = "Hello Box2D";
71+
var userData = B2UserData.Ref(value);
72+
73+
Assert.That(userData.IsEmpty(), Is.False);
74+
Assert.That(userData.type, Is.EqualTo(B2UserDataType.Ref));
75+
Assert.That(userData.GetRef<string>(), Is.EqualTo(value));
76+
77+
// Default value check
78+
Assert.That(userData.GetSigned(-1), Is.EqualTo(-1));
79+
Assert.That(userData.GetUnsigned(123), Is.EqualTo(123));
80+
Assert.That(userData.GetDouble(1.23), Is.EqualTo(1.23));
81+
}
82+
83+
[Test]
84+
public void TestRefTypeMismatch()
85+
{
86+
string value = "Hello Box2D";
87+
var userData = B2UserData.Ref(value);
88+
89+
// Trying to get as int (boxed) should return null because stored object is string
90+
Assert.That(userData.GetRef<object>(), Is.EqualTo(value));
91+
92+
// This cast will fail inside GetRef and return null
93+
var intRef = userData.GetRef<B2Body>();
94+
Assert.That(intRef, Is.Null);
95+
}
96+
}
97+
}

0 commit comments

Comments
 (0)