6
6
using System . IO ;
7
7
using System . Text . Json ;
8
8
using System . Xml ;
9
- using System . Xml . Linq ;
10
9
using NUnit . Framework ;
11
10
12
11
namespace Azure . Core . Tests
@@ -23,6 +22,11 @@ public static IEnumerable<TestCaseData> GetDateTimeData()
23
22
yield return new TestCaseData ( DateTimeOffset . Parse ( "2022-08-26T18:38:00Z" ) , DateTimeOffset . Parse ( "2022-09-26T18:38:00Z" ) ) ;
24
23
}
25
24
25
+ public static IEnumerable < TestCaseData > GetOneDateTimeData ( )
26
+ {
27
+ yield return new TestCaseData ( DateTimeOffset . Parse ( "2022-08-26T18:38:00Z" ) ) ;
28
+ }
29
+
26
30
[ TestCase ( 1 , 2 ) ]
27
31
[ TestCase ( "a" , "b" ) ]
28
32
[ TestCase ( true , false ) ]
@@ -148,5 +152,39 @@ public void TestBinaryDataFromDictionary()
148
152
}
149
153
}
150
154
}
155
+
156
+ [ TestCase ( "a" ) ]
157
+ [ TestCase ( true ) ]
158
+ [ TestCase ( 1 ) ]
159
+ [ TestCase ( 1.0 ) ]
160
+ [ TestCaseSource ( "GetOneDateTimeData" ) ]
161
+ public void TestFromObject < T > ( T value )
162
+ {
163
+ var content = RequestContentHelper . FromObject ( value ) ;
164
+ var stream = new MemoryStream ( ) ;
165
+ content . WriteTo ( stream , default ) ;
166
+ stream . Position = 0 ;
167
+ var document = JsonDocument . Parse ( stream ) ;
168
+ switch ( value )
169
+ {
170
+ case string :
171
+ Assert . AreEqual ( JsonValueKind . String , document . RootElement . ValueKind ) ;
172
+ Assert . AreEqual ( $ "\" { value } \" ", document . RootElement . GetRawText ( ) ) ;
173
+ break ;
174
+ case bool :
175
+ Assert . AreEqual ( value , document . RootElement . GetBoolean ( ) ) ;
176
+ break ;
177
+ case int :
178
+ Assert . AreEqual ( value , document . RootElement . GetInt32 ( ) ) ;
179
+ break ;
180
+ case double :
181
+ Assert . AreEqual ( value , document . RootElement . GetDouble ( ) ) ;
182
+ break ;
183
+ case DateTimeOffset :
184
+ Assert . AreEqual ( JsonValueKind . String , document . RootElement . ValueKind ) ;
185
+ Assert . AreEqual ( value , DateTimeOffset . Parse ( document . RootElement . GetString ( ) ) ) ;
186
+ break ;
187
+ }
188
+ }
151
189
}
152
190
}
0 commit comments