Skip to content

Commit a7074b1

Browse files
authored
Add integration tests for tag filtering (#222)
1 parent 20cc866 commit a7074b1

File tree

4 files changed

+88
-2
lines changed

4 files changed

+88
-2
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System.Linq;
2+
using System.Net.Http;
3+
using System.Threading.Tasks;
4+
5+
using FluentAssertions;
6+
7+
using Microsoft.VisualStudio.TestTools.UnitTesting;
8+
9+
using Newtonsoft.Json;
10+
using Newtonsoft.Json.Linq;
11+
12+
namespace Microsoft.Azure.WebJobs.Extensions.OpenApi.Document.Tests
13+
{
14+
[TestClass]
15+
[TestCategory(Constants.TestCategory)]
16+
public class Get_Query_TagFilter_Tests
17+
{
18+
private static HttpClient http = new HttpClient();
19+
20+
private JObject _doc;
21+
22+
[TestInitialize]
23+
public async Task Init()
24+
{
25+
var json = await http.GetStringAsync(Constants.OpenApiDocEndpoint + "?tag=tagfilter").ConfigureAwait(false);
26+
this._doc = JsonConvert.DeserializeObject<JObject>(json);
27+
}
28+
29+
[DataTestMethod]
30+
[DataRow("/get-query-textplain-string")]
31+
public void Given_OpenApiDocument_Then_It_Should_Return_Null(string path)
32+
{
33+
var paths = this._doc["paths"];
34+
35+
paths.Value<JToken>(path).Should().BeNull();
36+
}
37+
38+
[DataTestMethod]
39+
[DataRow("/get-query-tagfilter")]
40+
public void Given_OpenApiDocument_Then_It_Should_Return_Path(string path)
41+
{
42+
var paths = this._doc["paths"];
43+
44+
paths.Value<JToken>(path).Should().NotBeNull();
45+
}
46+
47+
[DataTestMethod]
48+
[DataRow("/get-query-tagfilter", "get", "tagfilter")]
49+
public void Given_OpenApiDocument_Then_It_Should_Return_Tag(string path, string operationType, string tag)
50+
{
51+
var tags = this._doc["paths"][path][operationType]["tags"].Children();
52+
53+
var tagItem = tags.SingleOrDefault(p => p.Value<string>() == tag);
54+
55+
tagItem.Should().NotBeNull();
56+
}
57+
}
58+
}

test-integration/Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp/Get_ApplicationJson_Object_HttpTrigger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp
1414
public static class Get_ApplicationJson_Object_HttpTrigger
1515
{
1616
[FunctionName(nameof(Get_ApplicationJson_Object_HttpTrigger))]
17-
[OpenApiOperation(operationId: nameof(Get_ApplicationJson_Object_HttpTrigger.Get_ApplicationJson_Object), tags: new[] { "name" })]
17+
[OpenApiOperation(operationId: nameof(Get_ApplicationJson_Object_HttpTrigger.Get_ApplicationJson_Object), tags: new[] { "greeting" })]
1818
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "application/json", bodyType: typeof(SingleStringObject), Description = "The OK response")]
1919
public static async Task<IActionResult> Get_ApplicationJson_Object(
2020
[HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "get-applicationjson-object")] HttpRequest req,
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System.Net;
2+
using System.Threading.Tasks;
3+
4+
using Microsoft.AspNetCore.Http;
5+
using Microsoft.AspNetCore.Mvc;
6+
using Microsoft.Azure.WebJobs.Extensions.Http;
7+
using Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Attributes;
8+
using Microsoft.Extensions.Logging;
9+
using Microsoft.OpenApi.Models;
10+
11+
namespace Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp
12+
{
13+
public static class Get_Query_TagFilter_HttpTrigger
14+
{
15+
[FunctionName(nameof(Get_Query_TagFilter_HttpTrigger))]
16+
[OpenApiOperation(operationId: nameof(Get_Query_TagFilter_HttpTrigger.Get_Query_TagFilter), tags: new[] { "tagfilter" })]
17+
[OpenApiParameter(name: "name", In = ParameterLocation.Query, Required = true, Type = typeof(string), Description = "The **Name** parameter")]
18+
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Description = "The OK response")]
19+
public static async Task<IActionResult> Get_Query_TagFilter(
20+
[HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "get-query-tagfilter")] HttpRequest req,
21+
ILogger log)
22+
{
23+
var result = new OkResult();
24+
25+
return await Task.FromResult(result).ConfigureAwait(false);
26+
}
27+
}
28+
}

test-integration/Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp/Get_Query_TextPlain_String_HttpTrigger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp
1313
public static class Get_Query_TextPlain_String_HttpTrigger
1414
{
1515
[FunctionName(nameof(Get_Query_TextPlain_String_HttpTrigger))]
16-
[OpenApiOperation(operationId: nameof(Get_Query_TextPlain_String_HttpTrigger.Get_Query_TextPlain_String), tags: new[] { "name" })]
16+
[OpenApiOperation(operationId: nameof(Get_Query_TextPlain_String_HttpTrigger.Get_Query_TextPlain_String), tags: new[] { "greeting" })]
1717
[OpenApiParameter(name: "name", In = ParameterLocation.Query, Required = true, Type = typeof(string), Description = "The **Name** parameter")]
1818
[OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Description = "The OK response")]
1919
public static async Task<IActionResult> Get_Query_TextPlain_String(

0 commit comments

Comments
 (0)