@@ -29,6 +29,45 @@ namespace YamlDotNet.Test.Serialization
2929{
3030 public class TypeConverterAttributeTests
3131 {
32+ [ Fact ]
33+ public void TestConverterInAttributeOverride_Deserializes ( )
34+ {
35+ var deserializer = new DeserializerBuilder ( )
36+ . WithAttributeOverride < OuterClassWithoutAttribute > (
37+ c => c . Value ,
38+ new YamlConverterAttribute ( typeof ( AttributedTypeConverter ) ) )
39+ . WithTypeConverter ( new AttributedTypeConverter ( ) )
40+ . Build ( ) ;
41+ var yaml = @"Value:
42+ abc: def" ;
43+ var actual = deserializer . Deserialize < OuterClassWithoutAttribute > ( yaml ) ;
44+ Assert . Equal ( "abc" , actual . Value . Key ) ;
45+ Assert . Equal ( "def" , actual . Value . Value ) ;
46+ }
47+
48+ [ Fact ]
49+ public void TestConverterInAttributeOverride_Serializes ( )
50+ {
51+ var serializer = new SerializerBuilder ( )
52+ . WithAttributeOverride < OuterClassWithoutAttribute > (
53+ c => c . Value ,
54+ new YamlConverterAttribute ( typeof ( AttributedTypeConverter ) ) )
55+ . WithTypeConverter ( new AttributedTypeConverter ( ) )
56+ . Build ( ) ;
57+ var o = new OuterClassWithoutAttribute
58+ {
59+ Value = new ValueClass
60+ {
61+ Key = "abc" ,
62+ Value = "def"
63+ }
64+ } ;
65+ var actual = serializer . Serialize ( o ) . NormalizeNewLines ( ) . TrimNewLines ( ) ;
66+ var expected = @"Value:
67+ abc: def" . NormalizeNewLines ( ) . TrimNewLines ( ) ;
68+ Assert . Equal ( expected , actual ) ;
69+ }
70+
3271 [ Fact ]
3372 public void TestConverterOnAttribute_Deserializes ( )
3473 {
@@ -94,6 +133,11 @@ public class OuterClass
94133 public ValueClass Value { get ; set ; }
95134 }
96135
136+ public class OuterClassWithoutAttribute
137+ {
138+ public ValueClass Value { get ; set ; }
139+ }
140+
97141 public class ValueClass
98142 {
99143 public string Key { get ; set ; }
0 commit comments