@@ -538,6 +538,51 @@ public void TestReflectionFieldsModelWithConvertName()
538
538
Assert . AreEqual ( 127 , result ) ;
539
539
}
540
540
541
+ [ Test ]
542
+ public void TestReflectionModelWithInlineTable ( )
543
+ {
544
+ var input = @"name = ""this is a name""
545
+ values = [""a"", ""b"", ""c"", 1]
546
+ intvalues = 1
547
+ intvalue = 2
548
+ doublevalue = 2.5
549
+ sub = [ { id = ""id1"", publish = true }, { id = ""id2"", publish = false }, { id = ""id3"" } ]
550
+ " ;
551
+ var syntax = Toml . Parse ( input ) ;
552
+ Assert . False ( syntax . HasErrors , "The document should not have any errors" ) ;
553
+
554
+ StandardTests . Dump ( input , syntax , syntax . ToString ( ) ) ;
555
+
556
+
557
+ var options = new TomlModelOptions ( ) { ConvertPropertyName = name => name . ToLowerInvariant ( ) , ConvertFieldName = name => name . ToLowerInvariant ( ) } ;
558
+ var model = syntax . ToModel < SimpleModel > ( options ) ;
559
+
560
+ Assert . AreEqual ( "this is a name" , model . Name ) ;
561
+ Assert . AreEqual ( new List < string > ( ) { "a" , "b" , "c" , "1" } , model . Values ) ;
562
+ Assert . AreEqual ( new List < int > ( ) { 1 } , model . IntValues ) ;
563
+ Assert . AreEqual ( 2 , model . IntValue ) ;
564
+ Assert . AreEqual ( 2.5 , model . DoubleValue ) ;
565
+ Assert . AreEqual ( 3 , model . SubModels . Count ) ;
566
+ var sub = model . SubModels [ 0 ] ;
567
+ Assert . AreEqual ( "id1" , sub . Id ) ;
568
+ Assert . True ( sub . Publish ) ;
569
+ sub = model . SubModels [ 1 ] ;
570
+ Assert . AreEqual ( "id2" , sub . Id ) ;
571
+ Assert . False ( sub . Publish ) ;
572
+ sub = model . SubModels [ 2 ] ;
573
+ Assert . AreEqual ( "id3" , sub . Id ) ;
574
+ Assert . False ( sub . Publish ) ;
575
+
576
+ model . SubModels [ 2 ] . Value = 127 ;
577
+
578
+ var toml = Toml . FromModel ( model ) ;
579
+ StandardTests . DisplayHeader ( "toml from model" ) ;
580
+ Console . WriteLine ( toml ) ;
581
+
582
+ var model2 = Toml . ToModel ( toml ) ;
583
+ var result = ( model2 [ "sub" ] as TomlTableArray ) ? [ 2 ] ? [ "value" ] ;
584
+ Assert . AreEqual ( 127 , result ) ;
585
+ }
541
586
542
587
[ Test ]
543
588
public void TestReflectionModelWithErrors ( )
0 commit comments