Skip to content

Commit f856b44

Browse files
author
Vyacheslav
committed
feat:
+ wrapper set in value test #10
1 parent 94c851a commit f856b44

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

Src/Tests/WrapperFixture.cs

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,71 @@ public void FillAndGetValueTest()
7575
}
7676
}
7777

78+
[Test]
79+
public void SetInValueTest()
80+
{
81+
unsafe
82+
{
83+
var wrap2 = new Struct.HelpStructWrapper();
84+
wrap2.SetInt32(45);
85+
wrap2.SetInt64(4564564564);
86+
wrap2.SetHelpClass(new HelpClass()
87+
{
88+
Int32 = 12,
89+
Int64 = 321123,
90+
HelpStruct2 = new HelpStruct2(321, 98746512),
91+
HelpClass2 = new HelpClass()
92+
{
93+
Int32 = 238,
94+
Int64 = 40,
95+
HelpStruct2 = new HelpStruct2(1, 2)
96+
}
97+
});
98+
Assert.That(wrap2.HelpClass2, Is.EqualTo(IntPtr.Zero));
99+
Assert.That(wrap2.Int64, Is.EqualTo(4564564564));
100+
Assert.That(wrap2.Int32, Is.EqualTo(45));
101+
var helpClassValue = wrap2.HelpClass;
102+
var helpClassValue2 = wrap2.HelpClass;
103+
Assert.That(!Is.ReferenceEquals(helpClassValue, helpClassValue2));
104+
Assert.That(helpClassValue.Int32, Is.EqualTo(12));
105+
Assert.That(helpClassValue.Int64, Is.EqualTo(321123));
106+
Assert.That(helpClassValue.HelpStruct2, Is.EqualTo(new HelpStruct2(321, 98746512)));
107+
Assert.That(helpClassValue.HelpClass2, Is.EqualTo(null));
108+
109+
Assert.That(helpClassValue.Int32, Is.EqualTo(helpClassValue2.Int32));
110+
Assert.That(helpClassValue.Int64, Is.EqualTo(helpClassValue2.Int64));
111+
Assert.That(helpClassValue.HelpStruct2, Is.EqualTo(helpClassValue.HelpStruct2));
112+
Assert.That(helpClassValue.HelpClass2, Is.EqualTo(helpClassValue.HelpClass2));
113+
114+
var wrapClass = new Struct.HelpClassWrapper();
115+
wrapClass.Fill(new HelpClass(44, 235, new HelpStruct2(140, 78)));
116+
wrap2.SetHelpClass2(new IntPtr(wrapClass.Ptr));
117+
Assert.That(wrap2.HelpClass2, Is.EqualTo(new IntPtr(wrapClass.Ptr)));
118+
var helpClass2Value = wrap2.HelpClass2ValueInPtr;
119+
Assert.That(helpClass2Value, Is.Not.EqualTo(null));
120+
Assert.That(helpClass2Value.Int32, Is.EqualTo(44));
121+
Assert.That(helpClass2Value.Int64, Is.EqualTo(235));
122+
Assert.That(helpClass2Value.HelpStruct2, Is.EqualTo(new HelpStruct2(140, 78)));
123+
Assert.That(helpClass2Value.HelpClass2, Is.EqualTo(null));
124+
125+
var helpStructValue = wrap2.GetValue();
126+
Assert.That(helpStructValue.Int64, Is.EqualTo(4564564564));
127+
Assert.That(helpStructValue.Int32, Is.EqualTo(45));
128+
Assert.That(helpStructValue.HelpClass.Int32, Is.EqualTo(12));
129+
Assert.That(helpStructValue.HelpClass.Int64, Is.EqualTo(321123));
130+
Assert.That(helpStructValue.HelpClass.HelpStruct2, Is.EqualTo(new HelpStruct2(321, 98746512)));
131+
132+
Assert.That(helpStructValue.HelpClass2, Is.Not.EqualTo(null));
133+
Assert.That(helpStructValue.HelpClass2.Int32, Is.EqualTo(44));
134+
Assert.That(helpStructValue.HelpClass2.Int64, Is.EqualTo(235));
135+
Assert.That(helpStructValue.HelpClass2.HelpStruct2, Is.EqualTo(new HelpStruct2(140, 78)));
136+
Assert.That(helpStructValue.HelpClass2.HelpClass2, Is.EqualTo(null));
137+
138+
wrapClass.Dispose();
139+
wrap2.Dispose();
140+
}
141+
}
142+
78143
[Test]
79144
public void GetPtrTest()
80145
{

0 commit comments

Comments
 (0)