Fix Null Warnings (#874)
* Fixing null warnings * Fix null warnings Fix other compiler warnings
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user