public void StudentControllerGetAllRecordsTest()
        {
            //arrange
            var mockRepository = Mock.Create<IRepository<Student>>();
            var studentToAdd = new Student()
            {
                Age = 10,
                Grade = 4,
                FirstName = "Nikolay",
                LastName = "Kostadinov",
            };

            IList<Student> studentEntities = new List<Student>();
            studentEntities.Add(studentToAdd);

            Mock.Arrange(() => mockRepository.All())
                .Returns(() => studentEntities.AsQueryable());

            var studentController = new StudentController(mockRepository);

            var expected = 1;
            //act
            var actual = studentController.Get();

            // assert
            Assert.AreEqual(expected, actual.Count());
        }
        public void StudentControllerGetAllWithMarksGreaterThan5RecordTest()
        {
            //arrange
            var mockRepository = Mock.Create<IRepository<Student>>();
            
            var studentToAdd2 = new Student()
            {
                Age = 10,
                Grade = 4,
                FirstName = "Pencho",
                LastName = "Penchev",
                Marks = new List<Mark>
                {
                    new Mark
                    {
                        Subject = "Math",
                        Value = 4,
                    }
                },
            };

            IList<Student> studentEntities = new List<Student>();
            studentEntities.Add(studentModel);
            studentEntities.Add(studentToAdd2);

            Mock.Arrange(() => mockRepository.All())
                .Returns(() => studentEntities.AsQueryable());

            var studentController = new StudentController(mockRepository);
            var studentModels = studentEntities.AsQueryable().Select(StudentDetailedModel.FormStudent).First();
            var expected = studentModels;
            
            //act
            var result = studentController.Get("Math", 5);
            var actual = result.First();

            // assert
            Assert.IsTrue(result.Count() == 1);
            Assert.AreEqual(expected.FirstName, actual.FirstName);
        }
        public void StudentControllerGetSingleRecordTest()
        {
            //arrange
            var mockRepository = Mock.Create<IRepository<Student>>();
            var studentToAdd = new Student()
            {
                Age = 10,
                Grade = 4,
                FirstName = "Nikolay",
                LastName = "Kostadinov",
            };

            IList<Student> studentEntities = new List<Student>();
            studentEntities.Add(studentToAdd);

            Mock.Arrange(() => mockRepository.All())
                .Returns(() => studentEntities.AsQueryable());

            var studentController = new StudentController(mockRepository);
            var studentModels = studentEntities.AsQueryable().Select(StudentDetailedModel.FormStudent).First();
            var expected = studentModels;
            //act
            var actual = studentController.Get(0);

            // assert
            Assert.AreEqual(expected.FirstName, actual.FirstName);
        }