Skip to content

Commit 2195576

Browse files
Adopt encode datetime and duration spector scenarios (Azure#49732)
1 parent dd2bd35 commit 2195576

File tree

47 files changed

+7423
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+7423
-2
lines changed

eng/packages/http-client-csharp/eng/scripts/Generate.ps1

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ $failingSpecs = @(
6868
Join-Path 'http' 'client' 'structure' 'renamed-operation'
6969
Join-Path 'http' 'client' 'structure' 'multi-client'
7070
Join-Path 'http' 'client' 'structure' 'two-operation-group'
71-
Join-Path 'http' 'encode' 'datetime'
72-
Join-Path 'http' 'encode' 'duration'
7371
Join-Path 'http' 'parameters' 'collection-format'
7472
Join-Path 'http' 'response' 'status-code-range' # Response namespace conflicts with Azure.Response
7573
Join-Path 'http' 'routes'

eng/packages/http-client-csharp/generator/Azure.Generator/src/Properties/launchSettings.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@
5050
"commandName": "Executable",
5151
"executablePath": "dotnet"
5252
},
53+
"http-encode-datetime": {
54+
"commandLineArgs": "$(SolutionDir)/../dist/generator/Microsoft.TypeSpec.Generator.dll $(SolutionDir)/TestProjects/Spector/http/encode/datetime -g AzureStubGenerator",
55+
"commandName": "Executable",
56+
"executablePath": "dotnet"
57+
},
58+
"http-encode-duration": {
59+
"commandLineArgs": "$(SolutionDir)/../dist/generator/Microsoft.TypeSpec.Generator.dll $(SolutionDir)/TestProjects/Spector/http/encode/duration -g AzureStubGenerator",
60+
"commandName": "Executable",
61+
"executablePath": "dotnet"
62+
},
5363
"http-encode-numeric": {
5464
"commandLineArgs": "$(SolutionDir)/../dist/generator/Microsoft.TypeSpec.Generator.dll $(SolutionDir)/TestProjects/Spector/http/encode/numeric -g AzureStubGenerator",
5565
"commandName": "Executable",
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
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

Comments
 (0)