@@ -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