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)); }
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)); }
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)); }
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(); }
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)); }
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)); }
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(); }