public async Task Student_Post_Should_Return_Student_Created()
        {
            // Arrange
            var client = new PrivateEndpointTestArranger(_factory).Arrange();
            // Act
            var student = new Student {
                FirstMidName = "Marcelo", LastName = "Guimarães", EnrollmentDate = DateTime.Parse("2005-09-01")
            };
            string json        = JsonConvert.SerializeObject(student);
            var    httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var    response    = await client.PostAsync("/students", httpContent);

            var responseString = await response.Content.ReadAsStringAsync();

            Student storedStudent = JsonConvert.DeserializeObject <Student>(responseString);

            // Assert
            Assert.True(HttpStatusCode.Created.Equals(response.StatusCode) && storedStudent.ID > 0);
        }
        public async Task Student_Delete_Should_Create_Student_Delete_And_Return_204()
        {
            // Arrange
            var client = new PrivateEndpointTestArranger(_factory).Arrange();
            // Act

            var student = new Student {
                FirstMidName = "StudentToBeDeleted", LastName = "WillBEDeleted", EnrollmentDate = DateTime.Parse("2005-09-01")
            };
            string json        = JsonConvert.SerializeObject(student);
            var    httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var    response    = await client.PostAsync("/students", httpContent);

            var responseString = await response.Content.ReadAsStringAsync();

            Student storedStudent = JsonConvert.DeserializeObject <Student>(responseString);

            var deleteResponse = await client.DeleteAsync($"/students/{storedStudent.ID}");

            // Assert
            Assert.Equal(HttpStatusCode.NoContent, deleteResponse.StatusCode);
        }