This repository was archived by the owner on Dec 24, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
tests/ServiceStack.Text.Tests/UseCases Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -177,5 +177,28 @@ public void Can_use_TypedFields_accessor()
177
177
var value = typeProps . GetPublicGetter ( "StringField" ) ( instance ) ;
178
178
Assert . That ( value , Is . EqualTo ( "foo" ) ) ;
179
179
}
180
+
181
+ [ Test ]
182
+ public void Can_use_TypedFields_ValueType_Accessor ( )
183
+ {
184
+ var typeFields = TypeFields . Get ( typeof ( ( string s , int i ) ) ) ;
185
+
186
+ var oTuple = ( object ) ( "foo" , 1 ) ;
187
+
188
+ typeFields . GetPublicSetterRef ( "Item1" ) ( ref oTuple , "bar" ) ;
189
+ typeFields . GetPublicSetterRef ( "Item2" ) ( ref oTuple , 2 ) ;
190
+
191
+ var tuple = ( ( string s , int i ) ) oTuple ;
192
+ Assert . That ( tuple . s , Is . EqualTo ( "bar" ) ) ;
193
+ Assert . That ( tuple . i , Is . EqualTo ( 2 ) ) ;
194
+
195
+ var item1Accessor = typeFields . GetAccessor ( "Item1" ) ;
196
+ var item2Accessor = typeFields . GetAccessor ( "Item2" ) ;
197
+ item1Accessor . PublicSetterRef ( ref oTuple , "qux" ) ;
198
+ item2Accessor . PublicSetterRef ( ref oTuple , 3 ) ;
199
+
200
+ Assert . That ( item1Accessor . PublicGetter ( oTuple ) , Is . EqualTo ( "qux" ) ) ;
201
+ Assert . That ( item2Accessor . PublicGetter ( oTuple ) , Is . EqualTo ( 3 ) ) ;
202
+ }
180
203
}
181
204
}
You can’t perform that action at this time.
0 commit comments