public void Add_StudentHaveValidProperties_ShouldAddTheStudent() { bool isItemAdded = false; var repository = Mock.Create<IRepository<Student>>(); StudentFullModel student = new StudentFullModel() { FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18 }; Student studentEntity = new Student() { StudentId = 1, FirstName = student.FirstName, LastName = student.LastName, Grade = student.Grade, Age = student.Age }; Mock.Arrange(() => repository.Add(Arg.IsAny<Student>())) .DoInstead(() => isItemAdded = true) .Returns(studentEntity); var controller = new StudentsController(repository); SetupController(controller); controller.Post(student); Assert.IsTrue(isItemAdded); }
public void GetAll_WhenASeveralStudenstInRepository_ShouldReturnAll() { var repository = Mock.Create<IRepository<Student>>(); Student student = new Student() { FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18 }; Student student2 = new Student() { FirstName = "Peter2", LastName = "Petrov2", Grade = 6, Age = 19 }; Student student3 = new Student() { FirstName = "Peter3", LastName = "Petrov3", Grade = 7, Age = 20 }; IList<Student> studentsEnteties = new List<Student>(); studentsEnteties.Add(student); studentsEnteties.Add(student2); studentsEnteties.Add(student3); Mock.Arrange(() => repository.All()).Returns(() => studentsEnteties.AsQueryable()); var controller = new StudentsController(repository); var studentsModels = controller.Get(); Assert.IsTrue(studentsModels.Count() == 3); Assert.IsNotNull(studentsModels.Where(s => s.LastName == student.LastName)); Assert.IsNotNull(studentsModels.Where(s => s.LastName == student2.LastName)); Assert.IsNotNull(studentsModels.Where(s => s.LastName == student3.LastName)); }
public void GetAll_WhenASingleStudentInRepository_ShouldReturnSingleStudent() { var repository = Mock.Create<IRepository<Student>>(); Student student = new Student() { FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18 }; IList<Student> studentsEnteties = new List<Student>(); studentsEnteties.Add(student); Mock.Arrange(() => repository.All()).Returns(() => studentsEnteties.AsQueryable()); var controller = new StudentsController(repository); var studentsModels = controller.Get(); Assert.IsTrue(studentsModels.Count() == 1); Assert.AreEqual(student.LastName, studentsModels.First().LastName); }
public void Delete_WhenNoStudentWithSameIdExistInDb_ShouldThrowException() { var repository = Mock.Create<IRepository<Student>>(); Student student = new Student() { StudentId = 1, FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18, }; IList<Student> studentsEnteties = new List<Student>(); studentsEnteties.Add(student); var invalidStudentId = 2; Mock.Arrange(() => repository.Delete(invalidStudentId)).Throws(new ArgumentException("Error")); var controller = new StudentsController(repository); controller.Delete(invalidStudentId); }
public void Delete_WhenStudentWithSameIdExistInDb_ShouldRemoveTheStudent() { var repository = Mock.Create<IRepository<Student>>(); Student student = new Student() { StudentId = 1, FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18, }; IList<Student> studentsEnteties = new List<Student>(); studentsEnteties.Add(student); Mock.Arrange(() => repository.Delete(student.StudentId)).DoInstead(() => studentsEnteties.RemoveAt(0)); var controller = new StudentsController(repository); controller.Delete(student.StudentId); Assert.IsTrue(studentsEnteties.Count == 0); }
public void GetByMarksAndSubject_WhenNoStudentsMatch_ShouldNotReturnStudents() { var repository = Mock.Create<IRepository<Student>>(); Student student = new Student() { FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18, Marks = new List<Mark>() { new Mark() { Subjeckt="Math", Value = 5 }, new Mark() { Subjeckt="Biology", Value = 4 }, } }; IList<Student> studentsEnteties = new List<Student>(); studentsEnteties.Add(student); string subject = "Math"; int value = 6; Mock.Arrange(() => repository.All()).Returns(() => studentsEnteties.AsQueryable().Where(s => s.Marks.Any( m => m.Subjeckt == subject && m.Value > value))); var controller = new StudentsController(repository); var studentsModels = controller.Get(subject, value); Assert.IsTrue(studentsModels.Count() == 0); }
public void GetById_WhenThereIsNoSuchStudentInDb_ShouldReturnNull() { var repository = Mock.Create<IRepository<Student>>(); IList<Student> studentsEnteties = new List<Student>(); Student studentEntity = new Student() { StudentId = 1, FirstName = "Peter", LastName = "Petrov", Grade = 5, Age = 18 }; int unexistingStudentId = 2; studentsEnteties.Add(studentEntity); Mock.Arrange(() => repository.Get(unexistingStudentId)).Returns(() => studentsEnteties.AsQueryable().Where(s => s.StudentId == unexistingStudentId).FirstOrDefault()); var controller = new StudentsController(repository); var studentModel = controller.Get(unexistingStudentId); Assert.IsFalse(studentModel.StudentId > 0); }
public void GetAll_WhenAZeroStudenstInRepository_ShouldReturnZeroStudents() { var repository = Mock.Create<IRepository<Student>>(); IList<Student> studentsEnteties = new List<Student>(); Mock.Arrange(() => repository.All()).Returns(() => studentsEnteties.AsQueryable()); var controller = new StudentsController(repository); var studentsModels = controller.Get(); Assert.AreEqual(studentsModels.Count(), 0); }