コード例 #1
0
        public void Put_ConcurrencyNotExist()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                Id           = 1,
                ModifiedBy   = null,
                ModifiedWhen = new DateTime(1000),
                Fact         = null,
                Rating       = 10
            };

            var repository = new Mock <IFunFactsRepository>();

            repository.Setup(ffr => ffr.Update(It.Is <IFunFact>(i => i == fact))).Throws <DbUpdateConcurrencyException>();
            repository.Setup(ffr => ffr.Get(It.Is <long>(i => i == 1))).Returns <IFunFact>(null);
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.Put(1, fact);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(NotFoundResult));
        }
コード例 #2
0
        public void GetRamdom_OK()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                Id           = 1,
                ModifiedBy   = "Me",
                ModifiedWhen = new DateTime(1000),
                Fact         = "Some Fact",
                Rating       = 10
            };

            var repository = new Mock <IFunFactsRepository>();

            repository.Setup(ffr => ffr.GetRandom()).Returns(fact);
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.GetRamdom();

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <IFunFact>));
            var result     = (response as OkNegotiatedContentResult <IFunFact>).Content;
            var serializer = new JavaScriptSerializer();

            Assert.AreEqual(serializer.Serialize(fact), serializer.Serialize(result));
        }
コード例 #3
0
        public void Delete_Negative()
        {
            // Arrange
            var repository = new Mock <IFunFactsRepository>();
            var fact       = new ChuckNorrisFunFact();

            repository.Setup(ffr => ffr.Get(It.Is <long>(i => i == 2))).Returns <IFunFact>(null);
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.Delete(2);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(NotFoundResult));
        }
コード例 #4
0
        public void Post_OK()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                ModifiedBy   = "Me",
                ModifiedWhen = new DateTime(1000),
                Fact         = "Some Fact",
                Rating       = 10
            };
            var fact2 = new ChuckNorrisFunFact()
            {
                Id           = 2,
                ModifiedBy   = fact.ModifiedBy,
                ModifiedWhen = fact.ModifiedWhen,
                Fact         = fact.Fact,
                Rating       = fact.Rating
            };

            var repository = new Mock <IFunFactsRepository>();

            repository.Setup(ffr => ffr.Add(It.Is <IFunFact>(i => i == fact)))
            .Callback <IFunFact>(f => f.Id = 2)
            .Returns(fact);
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.Post(fact);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(CreatedAtRouteNegotiatedContentResult <ChuckNorrisFunFact>));
            var createdRoute = (response as CreatedAtRouteNegotiatedContentResult <ChuckNorrisFunFact>);
            var result       = createdRoute.Content;

            Assert.AreEqual("DefaultApi", createdRoute.RouteName);
            Assert.AreEqual("id", createdRoute.RouteValues.First().Key);
            Assert.AreEqual(2, (long)createdRoute.RouteValues.First().Value);

            var serializer = new JavaScriptSerializer();

            Assert.AreEqual(serializer.Serialize(fact2), serializer.Serialize(result));
            repository.VerifyAll();
        }
コード例 #5
0
        public void Put_Id()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                Id           = 1,
                ModifiedBy   = null,
                ModifiedWhen = new DateTime(1000),
                Fact         = null,
                Rating       = 10
            };

            var repository = new Mock <IFunFactsRepository>();
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.Put(2, fact);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(BadRequestResult));
        }
コード例 #6
0
        public void Post_NotValid()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                Id           = 1,
                ModifiedBy   = null,
                ModifiedWhen = new DateTime(1000),
                Fact         = null,
                Rating       = 10
            };

            var repository = new Mock <IFunFactsRepository>();
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            controller.ModelState.AddModelError("Fact", "test");

            // Act
            var response = controller.Post(fact);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult));
        }
コード例 #7
0
        public void Put_OK()
        {
            // Arrange
            var fact = new ChuckNorrisFunFact()
            {
                Id     = 1,
                Fact   = "Some Fact",
                Rating = 10
            };

            var fact2 = new ChuckNorrisFunFact()
            {
                Id           = 1,
                Fact         = "Some Fact",
                ModifiedBy   = "Me",
                ModifiedWhen = DateTime.Now,
                Rating       = 10
            };

            var repository = new Mock <IFunFactsRepository>();

            repository.Setup(ffr => ffr.Update(It.Is <IFunFact>(i => i == fact))).Returns(fact2);
            ChuckNorrisFunFactsController controller = new ChuckNorrisFunFactsController(repository.Object);

            // Act
            var response = controller.Put(1, fact);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <IFunFact>));
            var result     = (response as OkNegotiatedContentResult <IFunFact>).Content;
            var serializer = new JavaScriptSerializer();

            Assert.AreEqual(fact2, result);
            repository.VerifyAll();
        }