1+ // Copyright (c) Microsoft Corporation. All rights reserved.
2+ // Licensed under the MIT License.
3+
4+ using System ;
5+ using System . Threading . Tasks ;
6+ using Encode . Datetime ;
7+ using NUnit . Framework ;
8+
9+ namespace TestProjects . Spector . Tests . Http . Encode . Datetime
10+ {
11+ public class EncodeDateTimeTests : SpectorTestBase
12+ {
13+ [ SpectorTest ]
14+ public Task ResponseHeaderDefault ( ) => Test ( async ( host ) =>
15+ {
16+ var response = await new DatetimeClient ( host , null ) . GetResponseHeaderClient ( ) . DefaultAsync ( ) ;
17+ Assert . AreEqual ( 204 , response . Status ) ;
18+
19+ Assert . IsTrue ( response . Headers . TryGetValue ( "value" , out string ? header ) ) ;
20+ Assert . AreEqual ( "Fri, 26 Aug 2022 14:38:00 GMT" , header ) ;
21+ } ) ;
22+
23+ [ SpectorTest ]
24+ public Task ResponseHeaderRfc3339 ( ) => Test ( async ( host ) =>
25+ {
26+ var response = await new DatetimeClient ( host , null ) . GetResponseHeaderClient ( ) . Rfc3339Async ( ) ;
27+ Assert . AreEqual ( 204 , response . Status ) ;
28+
29+ Assert . IsTrue ( response . Headers . TryGetValue ( "value" , out string ? header ) ) ;
30+ Assert . AreEqual ( "2022-08-26T18:38:00.000Z" , header ) ;
31+ } ) ;
32+
33+ [ SpectorTest ]
34+ public Task ResponseHeaderRfc7231 ( ) => Test ( async ( host ) =>
35+ {
36+ var response = await new DatetimeClient ( host , null ) . GetResponseHeaderClient ( ) . Rfc7231Async ( ) ;
37+ Assert . AreEqual ( 204 , response . Status ) ;
38+
39+ Assert . IsTrue ( response . Headers . TryGetValue ( "value" , out string ? header ) ) ;
40+ Assert . AreEqual ( "Fri, 26 Aug 2022 14:38:00 GMT" , header ) ;
41+ } ) ;
42+
43+ [ SpectorTest ]
44+ public Task ResponseHeaderUnixTimestamp ( ) => Test ( async ( host ) =>
45+ {
46+ var response = await new DatetimeClient ( host , null ) . GetResponseHeaderClient ( ) . UnixTimestampAsync ( ) ;
47+ Assert . AreEqual ( 204 , response . Status ) ;
48+
49+ Assert . IsTrue ( response . Headers . TryGetValue ( "value" , out string ? header ) ) ;
50+ Assert . AreEqual ( "1686566864" , header ) ;
51+ } ) ;
52+
53+ [ SpectorTest ]
54+ public Task HeaderDefault ( ) => Test ( async ( host ) =>
55+ {
56+ DateTimeOffset data = DateTimeOffset . Parse ( "Fri, 26 Aug 2022 14:38:00 GMT" ) ;
57+ var response = await new DatetimeClient ( host , null ) . GetHeaderClient ( ) . DefaultAsync ( data ) ;
58+ Assert . AreEqual ( 204 , response . Status ) ;
59+ } ) ;
60+
61+ [ SpectorTest ]
62+ public Task HeaderRfc3339 ( ) => Test ( async ( host ) =>
63+ {
64+ DateTimeOffset data = DateTimeOffset . Parse ( "2022-08-26T18:38:00.000Z" ) ;
65+ var response = await new DatetimeClient ( host , null ) . GetHeaderClient ( ) . Rfc3339Async ( data ) ;
66+ Assert . AreEqual ( 204 , response . Status ) ;
67+ } ) ;
68+
69+ [ SpectorTest ]
70+ public Task HeaderRfc7231 ( ) => Test ( async ( host ) =>
71+ {
72+ DateTimeOffset data = DateTimeOffset . Parse ( "Fri, 26 Aug 2022 14:38:00 GMT" ) ;
73+ var response = await new DatetimeClient ( host , null ) . GetHeaderClient ( ) . Rfc7231Async ( data ) ;
74+ Assert . AreEqual ( 204 , response . Status ) ;
75+ } ) ;
76+
77+ [ SpectorTest ]
78+ public Task HeaderUnixTimestamp ( ) => Test ( async ( host ) =>
79+ {
80+ DateTimeOffset data = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
81+ var response = await new DatetimeClient ( host , null ) . GetHeaderClient ( ) . UnixTimestampAsync ( data ) ;
82+ Assert . AreEqual ( 204 , response . Status ) ;
83+ } ) ;
84+
85+ [ SpectorTest ]
86+ public Task HeaderUnixTimestampArray ( ) => Test ( async ( host ) =>
87+ {
88+ DateTimeOffset data1 = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
89+ DateTimeOffset data2 = DateTimeOffset . FromUnixTimeSeconds ( 1686734256 ) ;
90+ var response = await new DatetimeClient ( host , null ) . GetHeaderClient ( ) . UnixTimestampArrayAsync ( new [ ] { data1 , data2 } ) ;
91+ Assert . AreEqual ( 204 , response . Status ) ;
92+ } ) ;
93+
94+ [ SpectorTest ]
95+ public Task QueryDefault ( ) => Test ( async ( host ) =>
96+ {
97+ DateTimeOffset data = DateTimeOffset . Parse ( "2022-08-26T18:38:00.000Z" ) ;
98+ var response = await new DatetimeClient ( host , null ) . GetQueryClient ( ) . DefaultAsync ( data ) ;
99+ Assert . AreEqual ( 204 , response . Status ) ;
100+ } ) ;
101+
102+ [ SpectorTest ]
103+ public Task QueryRfc3339 ( ) => Test ( async ( host ) =>
104+ {
105+ DateTimeOffset data = DateTimeOffset . Parse ( "2022-08-26T18:38:00.000Z" ) ;
106+ var response = await new DatetimeClient ( host , null ) . GetQueryClient ( ) . Rfc3339Async ( data ) ;
107+ Assert . AreEqual ( 204 , response . Status ) ;
108+ } ) ;
109+
110+ [ SpectorTest ]
111+ public Task QueryRfc7231 ( ) => Test ( async ( host ) =>
112+ {
113+ DateTimeOffset data = DateTimeOffset . Parse ( "Fri, 26 Aug 2022 14:38:00 GMT" ) ;
114+ var response = await new DatetimeClient ( host , null ) . GetQueryClient ( ) . Rfc7231Async ( data ) ;
115+ Assert . AreEqual ( 204 , response . Status ) ;
116+ } ) ;
117+
118+ [ SpectorTest ]
119+ public Task QueryUnixTimestamp ( ) => Test ( async ( host ) =>
120+ {
121+ DateTimeOffset data = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
122+ var response = await new DatetimeClient ( host , null ) . GetQueryClient ( ) . UnixTimestampAsync ( data ) ;
123+ Assert . AreEqual ( 204 , response . Status ) ;
124+ } ) ;
125+
126+ [ SpectorTest ]
127+ public Task QueryUnixTimestampArray ( ) => Test ( async ( host ) =>
128+ {
129+ DateTimeOffset data1 = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
130+ DateTimeOffset data2 = DateTimeOffset . FromUnixTimeSeconds ( 1686734256 ) ;
131+ var response = await new DatetimeClient ( host , null ) . GetQueryClient ( ) . UnixTimestampArrayAsync ( new [ ] { data1 , data2 } ) ;
132+ Assert . AreEqual ( 204 , response . Status ) ;
133+ } ) ;
134+
135+ [ SpectorTest ]
136+ public Task PropertyDefault ( ) => Test ( async ( host ) =>
137+ {
138+ DateTimeOffset data = DateTimeOffset . Parse ( "2022-08-26T18:38:00.000Z" ) ;
139+ var body = new DefaultDatetimeProperty ( data ) ;
140+ var response = await new DatetimeClient ( host , null ) . GetPropertyClient ( ) . DefaultAsync ( body ) ;
141+ Assert . AreEqual ( body . Value , response . Value . Value ) ;
142+ } ) ;
143+
144+ [ SpectorTest ]
145+ public Task PropertyRfc3339 ( ) => Test ( async ( host ) =>
146+ {
147+ DateTimeOffset data = DateTimeOffset . Parse ( "2022-08-26T18:38:00.000Z" ) ;
148+ var body = new Rfc3339DatetimeProperty ( data ) ;
149+ var response = await new DatetimeClient ( host , null ) . GetPropertyClient ( ) . Rfc3339Async ( body ) ;
150+ Assert . AreEqual ( body . Value , response . Value . Value ) ;
151+ } ) ;
152+
153+ [ SpectorTest ]
154+ public Task PropertyRfc7231 ( ) => Test ( async ( host ) =>
155+ {
156+ DateTimeOffset data = DateTimeOffset . Parse ( "Fri, 26 Aug 2022 14:38:00 GMT" ) ;
157+ var body = new Rfc7231DatetimeProperty ( data ) ;
158+ var response = await new DatetimeClient ( host , null ) . GetPropertyClient ( ) . Rfc7231Async ( body ) ;
159+ Assert . AreEqual ( body . Value , response . Value . Value ) ;
160+ } ) ;
161+
162+
163+ [ SpectorTest ]
164+ public Task PropertyUnixTimestamp ( ) => Test ( async ( host ) =>
165+ {
166+ DateTimeOffset data = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
167+ var body = new UnixTimestampDatetimeProperty ( data ) ;
168+ var response = await new DatetimeClient ( host , null ) . GetPropertyClient ( ) . UnixTimestampAsync ( body ) ;
169+ Assert . AreEqual ( body . Value , response . Value . Value ) ;
170+ } ) ;
171+
172+ [ SpectorTest ]
173+ public Task PropertyUnixTimestampArray ( ) => Test ( async ( host ) =>
174+ {
175+ DateTimeOffset data1 = DateTimeOffset . FromUnixTimeSeconds ( 1686566864 ) ;
176+ DateTimeOffset data2 = DateTimeOffset . FromUnixTimeSeconds ( 1686734256 ) ;
177+ var body = new UnixTimestampArrayDatetimeProperty ( new [ ] { data1 , data2 } ) ;
178+ var response = await new DatetimeClient ( host , null ) . GetPropertyClient ( ) . UnixTimestampArrayAsync ( body ) ;
179+ Assert . AreEqual ( body . Value , response . Value . Value ) ;
180+ } ) ;
181+ }
182+ }
0 commit comments