コード例 #1
0
        public void GetAll_WhenOneStudent_ShouldReturnStatusCode200AndNotNullContent()
        {
            var students = new List <Student>();

            students.Add(new Student()
            {
                FirstName = "Andrew",
                LastName  = "Fuller",
                Age       = 29,
                Grade     = 4,
                SchoolId  = 1
            });

            var repository = Mock.Create <IRepository>();

            Mock.Arrange(() => repository.All <Student>(new[] { "School", "Marks" }))
            .Returns(() => students.AsQueryable());

            var server = new InMemoryHttpServer("http://localhost/", repository);

            var response = server.CreateGetRequest("api/students");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }
コード例 #2
0
        public void GetById_ShouldGetStudent()
        {
            var fakeRepo = new FakeStudentRepository();

            var student1 = new Student()
            {
                StudentId = 1,
                FirstName = "Minko",
                LastName  = "Markov",
                School    = new School(),
                Grade     = 5
            };

            var student2 = new Student()
            {
                StudentId = 2,
                FirstName = "Minko",
                LastName  = "Markov",
                School    = new School(),
                Grade     = 5
            };

            fakeRepo.Add(student2);
            fakeRepo.Add(student1);

            var server = new InMemoryHttpServer <Student>("http://localhost/", fakeRepo);

            var response = server.CreateGetRequest("api/students/1");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }
コード例 #3
0
        public void PostStudent_WhenValidStudent_ShouldReturnStatusCode201()
        {
            var fakeRepo = new FakeStudentRepository();

            var server =
                new InMemoryHttpServer <Student>("http://localhost/", fakeRepo);

            var response = server.CreatePostRequest("api/students",
                                                    new Student()
            {
                FirstName = "Minko",
                LastName  = "Markov",
                School    = new School(),
                Grade     = 5
            });

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
        }
コード例 #4
0
        public void PostStudent_WhenNameIsNull_ShouldReturnStatusCode400()
        {
            var repository = Mock.Create<IRepository>();

            Mock.Arrange(() => repository
                .Create(Arg.Matches<Student>(s => s.FirstName == null)))
                .Throws<Exception>();


            var server = new InMemoryHttpServer("http://localhost/", repository);

            var response = server.CreatePostRequest("api/students",
                new Student()
                {
                    FirstName = null
                });

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
コード例 #5
0
        public void PostStudent_WhenNameIsNull_ShouldReturnStatusCode400()
        {
            var repository = Mock.Create <IRepository>();

            Mock.Arrange(() => repository
                         .Create(Arg.Matches <Student>(s => s.FirstName == null)))
            .Throws <Exception>();


            var server = new InMemoryHttpServer("http://localhost/", repository);

            var response = server.CreatePostRequest("api/students",
                                                    new Student()
            {
                FirstName = null
            });

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
コード例 #6
0
        public void GetAll_WhenOneStudent_ShouldReturnStatusCode200AndNotNullContent()
        {
            var fakeRepo = new FakeStudentRepository();

            var student = new Student()
            {
                FirstName = "Minko",
                LastName  = "Markov",
                School    = new School(),
                Grade     = 5
            };

            fakeRepo.Add(student);

            var server = new InMemoryHttpServer <Student>("http://localhost/", fakeRepo);

            var response = server.CreateGetRequest("api/students");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }
コード例 #7
0
        public void GetAll_WhenOneStudent_ShouldReturnStatusCode200AndNotNullContent()
        {
            var students = new List<Student>();
            students.Add(new Student()
            {
                FirstName = "Andrew",
                LastName = "Fuller",
                Age = 29,
                Grade = 4,
                SchoolId = 1
            });

            var repository = Mock.Create<IRepository>();

            Mock.Arrange(() => repository.All<Student>(new[] { "School", "Marks" }))
                .Returns(() => students.AsQueryable());

            var server = new InMemoryHttpServer("http://localhost/", repository);

            var response = server.CreateGetRequest("api/students");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }