using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Net; using System.Net.Http; namespace H_Plus_Sports.Tests { [TestClass] public class OrderIntegrationTests { private readonly HttpClient _client; public OrderIntegrationTests() { var server = new TestServer(new WebHostBuilder().UseStartup()); _client = server.CreateClient(); } [TestMethod] public void OrderGetAllTest() { // Arrange var request = new HttpRequestMessage(new HttpMethod("GET"), "/api/Orders/"); // Act var response = _client.SendAsync(request).Result; // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); } [TestMethod] [DataRow(1001)] public void OrderGetOneTest(int id) { // Arrange var request = new HttpRequestMessage(new HttpMethod("GET"), $"/api/Orders/{id}"); // Act var response = _client.SendAsync(request).Result; // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); } [TestMethod] public void OrderPostTest() { // Arrange var request = new HttpRequestMessage(new HttpMethod("POST"), $"/api/Orders/"); // Act var response = _client.SendAsync(request).Result; // Assert Assert.AreEqual(HttpStatusCode.UnsupportedMediaType, response.StatusCode); } [TestMethod] [DataRow(1)] public void OrderPutTest(int id) { // Arrange var request = new HttpRequestMessage(new HttpMethod("PUT"), $"/api/Orders/{id}"); // Act var response = _client.SendAsync(request).Result; // Assert Assert.AreEqual(HttpStatusCode.UnsupportedMediaType, response.StatusCode); } [TestMethod] [DataRow(1)] public void OrderDeleteTest(int id) { // Arrange var request = new HttpRequestMessage(new HttpMethod("DELETE"), $"/api/Orders/{id}"); // Act var response = _client.SendAsync(request).Result; // Assert Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); } } }