@@ -199,5 +199,52 @@ public void GetPropertyPtrTest()
199199 Assert . That ( new IntPtr ( helpClass2Ptr ) , Is . EqualTo ( new IntPtr ( ( byte * ) wrap2 . Ptr + 12 + HelpClassHelper . SizeOf ) ) ) ;
200200 }
201201 }
202+
203+ [ Test ]
204+ public void GetPropertyValueTest ( )
205+ {
206+ unsafe
207+ {
208+ var wrap2 = new Struct . HelpStructWrapper ( ) ;
209+ var helpStructRef = new HelpStruct ( )
210+ {
211+ Int32 = 45 ,
212+ Int64 = 4564564564 ,
213+ HelpClass = new HelpClass ( )
214+ {
215+ Int32 = 12 ,
216+ Int64 = 321123 ,
217+ HelpStruct2 = new HelpStruct2 ( 321 , 98746512 ) ,
218+ HelpClass2 = new HelpClass ( )
219+ }
220+ } ;
221+ wrap2 . Fill ( in helpStructRef ) ;
222+ wrap2 . HelpClass2 = new IntPtr ( 4823 ) ;
223+
224+ var int64Value = HelpStructHelper . GetInt64Value ( wrap2 . Ptr ) ;
225+ Assert . That ( int64Value , Is . EqualTo ( 4564564564 ) ) ;
226+
227+ var int32Value = HelpStructHelper . GetInt32Value ( wrap2 . Ptr ) ;
228+ Assert . That ( int32Value , Is . EqualTo ( 45 ) ) ;
229+
230+ var helpClassValue = HelpStructHelper . GetHelpClassValue ( wrap2 . Ptr ) ;
231+ var helpClassValue2 = HelpStructHelper . GetHelpClassValue ( wrap2 . Ptr ) ;
232+ Assert . That ( ! Is . ReferenceEquals ( helpClassValue , helpClassValue2 ) ) ;
233+ Assert . That ( helpClassValue . Int32 , Is . EqualTo ( 12 ) ) ;
234+ Assert . That ( helpClassValue . Int64 , Is . EqualTo ( 321123 ) ) ;
235+ Assert . That ( helpClassValue . HelpStruct2 , Is . EqualTo ( new HelpStruct2 ( 321 , 98746512 ) ) ) ;
236+ Assert . That ( helpClassValue . HelpClass2 , Is . EqualTo ( null ) ) ;
237+
238+ Assert . That ( helpClassValue . Int32 , Is . EqualTo ( helpClassValue2 . Int32 ) ) ;
239+ Assert . That ( helpClassValue . Int64 , Is . EqualTo ( helpClassValue2 . Int64 ) ) ;
240+ Assert . That ( helpClassValue . HelpStruct2 , Is . EqualTo ( helpClassValue . HelpStruct2 ) ) ;
241+ Assert . That ( helpClassValue . HelpClass2 , Is . EqualTo ( helpClassValue . HelpClass2 ) ) ;
242+
243+ var helpClass2Value = HelpStructHelper . GetHelpClass2Value ( wrap2 . Ptr ) ;
244+ Assert . That ( helpClass2Value , Is . EqualTo ( new IntPtr ( 4823 ) ) ) ;
245+
246+ wrap2 . Dispose ( ) ;
247+ }
248+ }
202249 }
203250}
0 commit comments