Fix Null Warnings (#874)
* Fixing null warnings * Fix null warnings Fix other compiler warnings
This commit is contained in:
@@ -23,7 +23,7 @@ public class OrderIndexOnGet : IClassFixture<TestApplication>
|
||||
public async Task ReturnsRedirectGivenAnonymousUser()
|
||||
{
|
||||
var response = await Client.GetAsync("/order/my-orders");
|
||||
var redirectLocation = response.Headers.Location.OriginalString;
|
||||
var redirectLocation = response!.Headers.Location!.OriginalString;
|
||||
|
||||
Assert.Equal(HttpStatusCode.Redirect, response.StatusCode);
|
||||
Assert.Contains("/Account/Login", redirectLocation);
|
||||
|
||||
@@ -45,6 +45,6 @@ public class BasketPageCheckout : IClassFixture<TestApplication>
|
||||
|
||||
formContent = new FormUrlEncodedContent(keyValues);
|
||||
var postResponse2 = await Client.PostAsync("/Basket/Checkout", formContent);
|
||||
Assert.Contains("/Identity/Account/Login", postResponse2.RequestMessage.RequestUri.ToString());
|
||||
Assert.Contains("/Identity/Account/Login", postResponse2!.RequestMessage!.RequestUri!.ToString()!);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class CheckoutTest : IClassFixture<TestApplication>
|
||||
var checkOutResponse = await Client.PostAsync("/basket/checkout", checkOutContent);
|
||||
var stringCheckOutResponse = await checkOutResponse.Content.ReadAsStringAsync();
|
||||
|
||||
Assert.Contains("/Basket/Success", checkOutResponse.RequestMessage.RequestUri.ToString());
|
||||
Assert.Contains("/Basket/Success", checkOutResponse.RequestMessage!.RequestUri!.ToString());
|
||||
Assert.Contains("Thanks for your Order!", stringCheckOutResponse);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public class IndexTest : IClassFixture<TestApplication>
|
||||
|
||||
var stringUpdateResponse = await updateResponse.Content.ReadAsStringAsync();
|
||||
|
||||
Assert.Contains("/basket/update", updateResponse.RequestMessage.RequestUri.ToString());
|
||||
Assert.Contains("/basket/update", updateResponse!.RequestMessage!.RequestUri!.ToString()!);
|
||||
decimal expectedTotalAmount = 416.50M;
|
||||
Assert.Contains(expectedTotalAmount.ToString("N2"), stringUpdateResponse);
|
||||
}
|
||||
@@ -92,7 +92,7 @@ public class IndexTest : IClassFixture<TestApplication>
|
||||
|
||||
var stringUpdateResponse = await updateResponse.Content.ReadAsStringAsync();
|
||||
|
||||
Assert.Contains("/basket/update", updateResponse.RequestMessage.RequestUri.ToString());
|
||||
Assert.Contains("/basket/update", updateResponse!.RequestMessage!.RequestUri!.ToString()!);
|
||||
Assert.Contains("Basket is empty", stringUpdateResponse);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,6 @@ public static class WebPageHelpers
|
||||
{
|
||||
var regex = new Regex(regexpression);
|
||||
var match = regex.Match(input);
|
||||
return match.Groups.Values.LastOrDefault().Value;
|
||||
return match!.Groups!.Values!.LastOrDefault()!.Value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,29 +7,28 @@ using Microsoft.eShopWeb.ApplicationCore.Constants;
|
||||
using Microsoft.eShopWeb.PublicApi.AuthEndpoints;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace PublicApiIntegrationTests.AuthEndpoints
|
||||
{
|
||||
[TestClass]
|
||||
public class AuthenticateEndpoint
|
||||
{
|
||||
[TestMethod]
|
||||
[DataRow("demouser@microsoft.com", AuthorizationConstants.DEFAULT_PASSWORD, true)]
|
||||
[DataRow("demouser@microsoft.com", "badpassword", false)]
|
||||
[DataRow("baduser@microsoft.com", "badpassword", false)]
|
||||
public async Task ReturnsExpectedResultGivenCredentials(string testUsername, string testPassword, bool expectedResult)
|
||||
{
|
||||
var request = new AuthenticateRequest()
|
||||
{
|
||||
Username = testUsername,
|
||||
Password = testPassword
|
||||
};
|
||||
var jsonContent = new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json");
|
||||
var response = await ProgramTest.NewClient.PostAsync("api/authenticate", jsonContent);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<AuthenticateResponse>();
|
||||
namespace PublicApiIntegrationTests.AuthEndpoints;
|
||||
|
||||
Assert.AreEqual(expectedResult, model.Result);
|
||||
}
|
||||
[TestClass]
|
||||
public class AuthenticateEndpoint
|
||||
{
|
||||
[TestMethod]
|
||||
[DataRow("demouser@microsoft.com", AuthorizationConstants.DEFAULT_PASSWORD, true)]
|
||||
[DataRow("demouser@microsoft.com", "badpassword", false)]
|
||||
[DataRow("baduser@microsoft.com", "badpassword", false)]
|
||||
public async Task ReturnsExpectedResultGivenCredentials(string testUsername, string testPassword, bool expectedResult)
|
||||
{
|
||||
var request = new AuthenticateRequest()
|
||||
{
|
||||
Username = testUsername,
|
||||
Password = testPassword
|
||||
};
|
||||
var jsonContent = new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json");
|
||||
var response = await ProgramTest.NewClient.PostAsync("api/authenticate", jsonContent);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<AuthenticateResponse>();
|
||||
|
||||
Assert.AreEqual(expectedResult, model!.Result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,29 +4,28 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints;
|
||||
|
||||
[TestClass]
|
||||
public class CatalogItemGetByIdEndpointTest
|
||||
{
|
||||
[TestClass]
|
||||
public class CatalogItemGetByIdEndpointTest
|
||||
[TestMethod]
|
||||
public async Task ReturnsItemGivenValidId()
|
||||
{
|
||||
[TestMethod]
|
||||
public async Task ReturnsItemGivenValidId()
|
||||
{
|
||||
var response = await ProgramTest.NewClient.GetAsync("api/catalog-items/5");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<GetByIdCatalogItemResponse>();
|
||||
var response = await ProgramTest.NewClient.GetAsync("api/catalog-items/5");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<GetByIdCatalogItemResponse>();
|
||||
|
||||
Assert.AreEqual(5, model.CatalogItem.Id);
|
||||
Assert.AreEqual("Roslyn Red Sheet", model.CatalogItem.Name);
|
||||
}
|
||||
Assert.AreEqual(5, model!.CatalogItem.Id);
|
||||
Assert.AreEqual("Roslyn Red Sheet", model.CatalogItem.Name);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotFoundGivenInvalidId()
|
||||
{
|
||||
var response = await ProgramTest.NewClient.GetAsync("api/catalog-items/0");
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotFoundGivenInvalidId()
|
||||
{
|
||||
var response = await ProgramTest.NewClient.GetAsync("api/catalog-items/0");
|
||||
|
||||
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,66 +8,65 @@ using System.Net.Http;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints;
|
||||
|
||||
[TestClass]
|
||||
public class CatalogItemListPagedEndpoint
|
||||
{
|
||||
[TestClass]
|
||||
public class CatalogItemListPagedEndpoint
|
||||
[TestMethod]
|
||||
public async Task ReturnsFirst10CatalogItems()
|
||||
{
|
||||
[TestMethod]
|
||||
public async Task ReturnsFirst10CatalogItems()
|
||||
var client = ProgramTest.NewClient;
|
||||
var response = await client.GetAsync("/api/catalog-items?pageSize=10");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<CatalogIndexViewModel>();
|
||||
|
||||
Assert.AreEqual(10, model!.CatalogItems.Count());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsCorrectCatalogItemsGivenPageIndex1()
|
||||
{
|
||||
|
||||
var pageSize = 10;
|
||||
var pageIndex = 1;
|
||||
|
||||
var client = ProgramTest.NewClient;
|
||||
var response = await client.GetAsync($"/api/catalog-items");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<ListPagedCatalogItemResponse>();
|
||||
var totalItem = model!.CatalogItems.Count();
|
||||
|
||||
var response2 = await client.GetAsync($"/api/catalog-items?pageSize={pageSize}&pageIndex={pageIndex}");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse2 = await response2.Content.ReadAsStringAsync();
|
||||
var model2 = stringResponse2.FromJson<ListPagedCatalogItemResponse>();
|
||||
|
||||
var totalExpected = totalItem - (pageSize * pageIndex);
|
||||
|
||||
Assert.AreEqual(totalExpected, model2!.CatalogItems.Count());
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow("catalog-items")]
|
||||
[DataRow("catalog-brands")]
|
||||
[DataRow("catalog-types")]
|
||||
[DataRow("catalog-items/1")]
|
||||
public async Task SuccessFullMutipleParallelCall(string endpointName)
|
||||
{
|
||||
var client = ProgramTest.NewClient;
|
||||
var tasks = new List<Task<HttpResponseMessage>>();
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var client = ProgramTest.NewClient;
|
||||
var response = await client.GetAsync("/api/catalog-items?pageSize=10");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<CatalogIndexViewModel>();
|
||||
|
||||
Assert.AreEqual(10, model.CatalogItems.Count());
|
||||
var task = client.GetAsync($"/api/{endpointName}");
|
||||
tasks.Add(task);
|
||||
}
|
||||
await Task.WhenAll(tasks.ToList());
|
||||
var totalKO = tasks.Count(t => t.Result.StatusCode != HttpStatusCode.OK);
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsCorrectCatalogItemsGivenPageIndex1()
|
||||
{
|
||||
|
||||
var pageSize = 10;
|
||||
var pageIndex = 1;
|
||||
|
||||
var client = ProgramTest.NewClient;
|
||||
var response = await client.GetAsync($"/api/catalog-items");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<ListPagedCatalogItemResponse>();
|
||||
var totalItem = model.CatalogItems.Count();
|
||||
|
||||
var response2 = await client.GetAsync($"/api/catalog-items?pageSize={pageSize}&pageIndex={pageIndex}");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse2 = await response2.Content.ReadAsStringAsync();
|
||||
var model2 = stringResponse2.FromJson<ListPagedCatalogItemResponse>();
|
||||
|
||||
var totalExpected = totalItem - (pageSize * pageIndex);
|
||||
|
||||
Assert.AreEqual(totalExpected, model2.CatalogItems.Count());
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow("catalog-items")]
|
||||
[DataRow("catalog-brands")]
|
||||
[DataRow("catalog-types")]
|
||||
[DataRow("catalog-items/1")]
|
||||
public async Task SuccessFullMutipleParallelCall(string endpointName)
|
||||
{
|
||||
var client = ProgramTest.NewClient;
|
||||
var tasks = new List<Task<HttpResponseMessage>>();
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var task = client.GetAsync($"/api/{endpointName}");
|
||||
tasks.Add(task);
|
||||
}
|
||||
await Task.WhenAll(tasks.ToList());
|
||||
var totalKO = tasks.Count(t => t.Result.StatusCode != HttpStatusCode.OK);
|
||||
|
||||
Assert.AreEqual(0, totalKO);
|
||||
}
|
||||
Assert.AreEqual(0, totalKO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,62 +8,61 @@ using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PublicApiIntegrationTests.AuthEndpoints
|
||||
namespace PublicApiIntegrationTests.AuthEndpoints;
|
||||
|
||||
[TestClass]
|
||||
public class CreateCatalogItemEndpointTest
|
||||
{
|
||||
[TestClass]
|
||||
public class CreateCatalogItemEndpointTest
|
||||
private int _testBrandId = 1;
|
||||
private int _testTypeId = 2;
|
||||
private string _testDescription = "test description";
|
||||
private string _testName = "test name";
|
||||
private decimal _testPrice = 1.23m;
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotAuthorizedGivenNormalUserToken()
|
||||
{
|
||||
private int _testBrandId = 1;
|
||||
private int _testTypeId = 2;
|
||||
private string _testDescription = "test description";
|
||||
private string _testName = "test name";
|
||||
private decimal _testPrice = 1.23m;
|
||||
var jsonContent = GetValidNewItemJson();
|
||||
var token = ApiTokenHelper.GetNormalUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||||
var response = await client.PostAsync("api/catalog-items", jsonContent);
|
||||
|
||||
Assert.AreEqual(HttpStatusCode.Forbidden, response.StatusCode);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotAuthorizedGivenNormalUserToken()
|
||||
[TestMethod]
|
||||
public async Task ReturnsSuccessGivenValidNewItemAndAdminUserToken()
|
||||
{
|
||||
var jsonContent = GetValidNewItemJson();
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.PostAsync("api/catalog-items", jsonContent);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<CreateCatalogItemResponse>();
|
||||
|
||||
Assert.AreEqual(_testBrandId, model!.CatalogItem.CatalogBrandId);
|
||||
Assert.AreEqual(_testTypeId, model.CatalogItem.CatalogTypeId);
|
||||
Assert.AreEqual(_testDescription, model.CatalogItem.Description);
|
||||
Assert.AreEqual(_testName, model.CatalogItem.Name);
|
||||
Assert.AreEqual(_testPrice, model.CatalogItem.Price);
|
||||
}
|
||||
|
||||
private StringContent GetValidNewItemJson()
|
||||
{
|
||||
var request = new CreateCatalogItemRequest()
|
||||
{
|
||||
var jsonContent = GetValidNewItemJson();
|
||||
var token = ApiTokenHelper.GetNormalUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||||
var response = await client.PostAsync("api/catalog-items", jsonContent);
|
||||
CatalogBrandId = _testBrandId,
|
||||
CatalogTypeId = _testTypeId,
|
||||
Description = _testDescription,
|
||||
Name = _testName,
|
||||
Price = _testPrice
|
||||
};
|
||||
var jsonContent = new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json");
|
||||
|
||||
Assert.AreEqual(HttpStatusCode.Forbidden, response.StatusCode);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsSuccessGivenValidNewItemAndAdminUserToken()
|
||||
{
|
||||
var jsonContent = GetValidNewItemJson();
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.PostAsync("api/catalog-items", jsonContent);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<CreateCatalogItemResponse>();
|
||||
|
||||
Assert.AreEqual(_testBrandId, model.CatalogItem.CatalogBrandId);
|
||||
Assert.AreEqual(_testTypeId, model.CatalogItem.CatalogTypeId);
|
||||
Assert.AreEqual(_testDescription, model.CatalogItem.Description);
|
||||
Assert.AreEqual(_testName, model.CatalogItem.Name);
|
||||
Assert.AreEqual(_testPrice, model.CatalogItem.Price);
|
||||
}
|
||||
|
||||
private StringContent GetValidNewItemJson()
|
||||
{
|
||||
var request = new CreateCatalogItemRequest()
|
||||
{
|
||||
CatalogBrandId = _testBrandId,
|
||||
CatalogTypeId = _testTypeId,
|
||||
Description = _testDescription,
|
||||
Name = _testName,
|
||||
Price = _testPrice
|
||||
};
|
||||
var jsonContent = new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json");
|
||||
|
||||
return jsonContent;
|
||||
}
|
||||
return jsonContent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,34 +5,33 @@ using System.Net;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints
|
||||
namespace PublicApiIntegrationTests.CatalogItemEndpoints;
|
||||
|
||||
[TestClass]
|
||||
public class DeleteCatalogItemEndpointTest
|
||||
{
|
||||
[TestClass]
|
||||
public class DeleteCatalogItemEndpointTest
|
||||
[TestMethod]
|
||||
public async Task ReturnsSuccessGivenValidIdAndAdminUserToken()
|
||||
{
|
||||
[TestMethod]
|
||||
public async Task ReturnsSuccessGivenValidIdAndAdminUserToken()
|
||||
{
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.DeleteAsync("api/catalog-items/12");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<DeleteCatalogItemResponse>();
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.DeleteAsync("api/catalog-items/12");
|
||||
response.EnsureSuccessStatusCode();
|
||||
var stringResponse = await response.Content.ReadAsStringAsync();
|
||||
var model = stringResponse.FromJson<DeleteCatalogItemResponse>();
|
||||
|
||||
Assert.AreEqual("Deleted", model.Status);
|
||||
}
|
||||
Assert.AreEqual("Deleted", model!.Status);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotFoundGivenInvalidIdAndAdminUserToken()
|
||||
{
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.DeleteAsync("api/catalog-items/0");
|
||||
[TestMethod]
|
||||
public async Task ReturnsNotFoundGivenInvalidIdAndAdminUserToken()
|
||||
{
|
||||
var adminToken = ApiTokenHelper.GetAdminUserToken();
|
||||
var client = ProgramTest.NewClient;
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
|
||||
var response = await client.DeleteAsync("api/catalog-items/0");
|
||||
|
||||
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,26 +2,25 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace PublicApiIntegrationTests
|
||||
namespace PublicApiIntegrationTests;
|
||||
|
||||
[TestClass]
|
||||
public class ProgramTest
|
||||
{
|
||||
[TestClass]
|
||||
public class ProgramTest
|
||||
private static WebApplicationFactory<Program> _application = new();
|
||||
|
||||
public static HttpClient NewClient
|
||||
{
|
||||
private static WebApplicationFactory<Program> _application;
|
||||
|
||||
public static HttpClient NewClient
|
||||
get
|
||||
{
|
||||
get
|
||||
{
|
||||
return _application.CreateClient();
|
||||
}
|
||||
}
|
||||
|
||||
[AssemblyInitialize]
|
||||
public static void AssemblyInitialize(TestContext _)
|
||||
{
|
||||
_application = new WebApplicationFactory<Program>();
|
||||
|
||||
return _application.CreateClient();
|
||||
}
|
||||
}
|
||||
|
||||
[AssemblyInitialize]
|
||||
public static void AssemblyInitialize(TestContext _)
|
||||
{
|
||||
_application = new WebApplicationFactory<Program>();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user