public void Delete_WhenStudentIsValid_ShouldDeleteTheStudent() { bool isItemDeleted = false; var repository = Mock.Create<IRepository<Student>>(); Mock.Arrange(() => repository.Delete(Arg.AnyInt)) .DoInstead(() => { isItemDeleted = true; }); var controller = new StudentController(repository); controller.SetupControllerForTest(HttpMethod.Delete, BaseUrl, ControllerName); //act var httpResponse = controller.Delete(0); var actual = httpResponse.StatusCode; var expected = HttpStatusCode.Accepted; Assert.IsTrue(isItemDeleted); Assert.AreEqual(expected, actual); }
public void Add_WhenStudentIsInValid_ShouldAddTheStudent() { bool isItemAdded = false; var repository = Mock.Create<IRepository<Student>>(); var studentModel = new Student() { Age = 10, Grade = 4, FirstName = "Nikolay", LastName = "Kostadinov", }; var studentEntity = new Student() { StudentId = 1, Grade = 4, FirstName = "Nikolay", LastName = "Kostadinov", }; Mock.Arrange(() => repository.Add(Arg.IsAny<Student>())) .Throws<ArgumentException>("Grade"); var controller = new StudentController(repository); controller.SetupControllerForTest(HttpMethod.Post, BaseUrl, ControllerName); var expected = HttpStatusCode.BadRequest; //act var httpResponse = controller.Post(studentModel); var actual = httpResponse.StatusCode; ///assert Assert.AreEqual(expected, actual); }
public void Update_WhenStudentIsValid_ShouldUpdateTheStudent() { bool isItemUpdated = false; var repository = Mock.Create<IRepository<Student>>(); var studentModel = new Student() { Age = 10, Grade = 4, FirstName = "Nikolay", LastName = "Kostadinov", }; Mock.Arrange(() => repository.Update(Arg.AnyInt, Arg.IsAny<Student>())) .DoInstead(() => { isItemUpdated = true; }); var controller = new StudentController(repository); controller.SetupControllerForTest(HttpMethod.Put, BaseUrl, ControllerName); //act var httpResponse = controller.Put(1, studentModel); var actual = httpResponse.StatusCode; var expected = HttpStatusCode.Accepted; Assert.IsTrue(isItemUpdated); Assert.AreEqual(expected, actual); }
public void Add_WhenStudentIsValid_ShouldAddTheStudent() { bool isItemAdded = false; var repository = Mock.Create<IRepository<Student>>(); var studentModel = new Student() { Age = 10, Grade = 4, FirstName = "Nikolay", LastName = "Kostadinov", }; var studentEntity = new Student() { StudentId = 1, Age = 10, Grade = 4, FirstName = "Nikolay", LastName = "Kostadinov", }; Mock.Arrange(() => repository.Add(Arg.IsAny<Student>())) .DoInstead(() => { isItemAdded = true; }) .Returns(studentEntity); var controller = new StudentController(repository); controller.SetupControllerForTest(HttpMethod.Post, BaseUrl, ControllerName); //act var httpResponse = controller.Post(studentModel); var header = httpResponse.Headers.Location.AbsoluteUri; var expected = BaseUrl + ControllerName + "/1"; Assert.IsTrue(isItemAdded); Assert.AreEqual(expected, header); }