public void GetAllStudents_WhenThreeStudentsInRepository_ShouldReturnThreeStudents()
        {
            var repository = new FakeRepository<Student>();

            var studentToAdd1 = new Student()
            {
                FirstName = "Pesho"
            };
            var studentToAdd2 = new Student()
            {
                FirstName = "Pesho"
            };
            var studentToAdd3 = new Student()
            {
                FirstName = "Pesho"
            };
            repository.entities.Add(studentToAdd1);
            repository.entities.Add(studentToAdd2);
            repository.entities.Add(studentToAdd3);

            var controller = new StudentsController(repository);

            var studentModels = controller.GetAll();
            Assert.IsTrue(studentModels.Count() == 3);
        }
        public void GetAllStudents_WhenNoStudentsInRepository_ShouldReturnNoStudents()
        {
            var repository = new FakeRepository<Student>();
            var controller = new StudentsController(repository);

            var studentModels = controller.GetAll();
            Assert.IsTrue(studentModels.Count() == 0);
        }
        public void GetAll_WhenASingleStudentInRepository_ShouldReturnSingleStudent()
        {
            var repository = Mock.Create<IRepository<Student>>();
            var studentToAdd = new Student()
            {
                FirstName = "Pesho",
                LastName = "Peshev",
                Age = 23
            };
            IList<Student> studentEntities = new List<Student>();
            studentEntities.Add(studentToAdd);
            Mock.Arrange(() => repository.All()).Returns(() => studentEntities.AsQueryable());

            var controller = new StudentsController(repository);

            var studentModels = controller.GetAll();
            Assert.IsTrue(studentModels.Count() == 1);
            Assert.AreEqual(studentToAdd.FirstName, studentModels.First().FirstName);
        }