1
+ using ExtendedXmlSerializer . Configuration ;
2
+ using ExtendedXmlSerializer . Tests . ReportedIssues . Support ;
3
+ using FluentAssertions ;
4
+ using System ;
5
+ using System . Xml . Serialization ;
6
+ using Xunit ;
7
+
8
+ namespace ExtendedXmlSerializer . Tests . ReportedIssues
9
+ {
10
+ public sealed class Issue393Tests
11
+ {
12
+ [ Fact ]
13
+ void Verify ( )
14
+ {
15
+ const string content = @"<?xml version=""1.0"" encoding=""UTF-8""?>
16
+ <pin>
17
+ <id>1309801580</id>
18
+ <code>GBCT</code>
19
+ <expires-at>2020-05-10T18:52:14Z</expires-at>
20
+ <user-id>231221</user-id>
21
+ <client-identifier>8c89f40c-e1f3-45e1-95bc-a45a047ce77f</client-identifier>
22
+ <trusted>false</trusted>
23
+ <auth-token>z6ZM5jeSP19WroEQc2Xy</auth-token>
24
+ <auth_token>z6ZM5jeSP19WroEQc2Xy</auth_token>
25
+ </pin>" ;
26
+ var support = new ConfigurationContainer ( ) . EnableImplicitTyping ( typeof ( Pin ) )
27
+ . WithUnknownContent ( )
28
+ . Continue ( )
29
+ . Create ( )
30
+ . ForTesting ( ) ;
31
+ var stored = support . Deserialize < Pin > ( content ) ;
32
+
33
+ var expectation = new Pin
34
+ {
35
+ ID = 1309801580 , Code = "GBCT" ,
36
+ ExpiresAtUTC = DateTimeOffset . Parse ( "2020-05-10T18:52:14Z" ) . UtcDateTime ,
37
+ AuthToken = "z6ZM5jeSP19WroEQc2Xy" , ClientIdentifier = new Guid ( "8c89f40c-e1f3-45e1-95bc-a45a047ce77f" )
38
+ } ;
39
+ stored . Should ( ) . BeEquivalentTo ( expectation ) ;
40
+ }
41
+
42
+ [ XmlRoot ( "pin" ) ]
43
+ public sealed class Pin
44
+ {
45
+ [ XmlElement ( "id" ) ]
46
+ public int ID { get ; set ; }
47
+
48
+ [ XmlElement ( "code" ) ]
49
+ public string Code { get ; set ; }
50
+
51
+ [ XmlElement ( "expires-at" ) ]
52
+ public DateTime ExpiresAtUTC { get ; set ; }
53
+
54
+ [ XmlElement ( "auth-token" ) ]
55
+ public string AuthToken { get ; set ; }
56
+
57
+ [ XmlElement ( "client-identifier" ) ]
58
+ public Guid ClientIdentifier { get ; set ; }
59
+ }
60
+ }
61
+ }
0 commit comments