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()
177177 var value = typeProps . GetPublicGetter ( "StringField" ) ( instance ) ;
178178 Assert . That ( value , Is . EqualTo ( "foo" ) ) ;
179179 }
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+ }
180203 }
181204}
You can’t perform that action at this time.
0 commit comments