Skip to content

Commit b50278f

Browse files
author
Vyacheslav
committed
feat:
+ wrapper get out value test #8
1 parent 5b13f60 commit b50278f

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

Src/Tests/WrapperFixture.cs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,68 @@ public void GetPtrTest()
9696
wrap2.Dispose();
9797
}
9898
}
99+
100+
[Test]
101+
public void GetOutTest()
102+
{
103+
unsafe
104+
{
105+
var wrap2 = new Struct.HelpStructWrapper();
106+
var helpStructValueIn = new HelpStruct()
107+
{
108+
Int32 = 45,
109+
Int64 = 4564564564,
110+
HelpClass = new HelpClass()
111+
{
112+
Int32 = 12,
113+
Int64 = 321123,
114+
HelpStruct2 = new HelpStruct2(321, 98746512),
115+
HelpClass2 = new HelpClass()
116+
{
117+
Int32 = 238,
118+
Int64 = 40,
119+
HelpStruct2 = new HelpStruct2(1, 2)
120+
}
121+
}
122+
};
123+
wrap2.Fill(in helpStructValueIn);
124+
125+
IntPtr helpClass2Out;
126+
wrap2.GetOutHelpClass2(out helpClass2Out);
127+
Assert.That(helpClass2Out, Is.EqualTo(IntPtr.Zero));
128+
long int64Out;
129+
wrap2.GetOutInt64(out int64Out);
130+
Assert.That(int64Out, Is.EqualTo(4564564564));
131+
int int32Out;
132+
wrap2.GetOutInt32(out int32Out);
133+
Assert.That(int32Out, Is.EqualTo(45));
134+
HelpClass helpClassValue;
135+
wrap2.GetOutHelpClass(out helpClassValue);
136+
Assert.That(helpClassValue.Int32, Is.EqualTo(12));
137+
Assert.That(helpClassValue.Int64, Is.EqualTo(321123));
138+
Assert.That(helpClassValue.HelpStruct2, Is.EqualTo(new HelpStruct2(321, 98746512)));
139+
Assert.That(helpClassValue.HelpClass2, Is.EqualTo(null));
140+
141+
var wrapClass = new Struct.HelpClassWrapper();
142+
wrapClass.Fill(new HelpClass(44, 235, new HelpStruct2(140, 78)));
143+
var wrapClass2 = new Struct.HelpClassWrapper(wrap2.HelpClassPtr, false);
144+
wrapClass2.HelpClass2 = new IntPtr(wrapClass.Ptr);
145+
146+
HelpClass helpClassValue2;
147+
wrap2.GetOutHelpClass(out helpClassValue2);
148+
Assert.That(helpClassValue2.Int32, Is.EqualTo(12));
149+
Assert.That(helpClassValue2.Int64, Is.EqualTo(321123));
150+
Assert.That(helpClassValue2.HelpStruct2, Is.EqualTo(new HelpStruct2(321, 98746512)));
151+
Assert.That(helpClassValue2.HelpClass2, Is.Not.EqualTo(null));
152+
153+
Assert.That(helpClassValue2.HelpClass2.Int32, Is.EqualTo(44));
154+
Assert.That(helpClassValue2.HelpClass2.Int64, Is.EqualTo(235));
155+
Assert.That(helpClassValue2.HelpClass2.HelpStruct2, Is.EqualTo(new HelpStruct2(140, 78)));
156+
Assert.That(helpClassValue2.HelpClass2.HelpClass2, Is.EqualTo(null));
157+
158+
wrapClass.Dispose();
159+
wrap2.Dispose();
160+
}
161+
}
99162
}
100163
}

0 commit comments

Comments
 (0)