public void CreateNullBreedErrorTest()
        {
            //Arrange
            Breed fakeBreed = null;

            var mockBreedsBusinessLogic = new Mock <IBreedsBusinessLogic>();

            mockBreedsBusinessLogic
            .Setup(bl => bl.Add(fakeBreed))
            .Throws(new ArgumentNullException());

            var controller = new BreedsController(mockBreedsBusinessLogic.Object);

            //Act
            IHttpActionResult obtainedResult = controller.Post(fakeBreed);

            //Assert
            mockBreedsBusinessLogic.VerifyAll();
            Assert.IsInstanceOfType(obtainedResult, typeof(BadRequestErrorMessageResult));
        }
        public void CreateNewBreedTest()
        {
            //Arrange
            var fakeBreed = GetAFakeBreed();

            var mockBreedsBusinessLogic = new Mock <IBreedsBusinessLogic>();

            mockBreedsBusinessLogic
            .Setup(bl => bl.Add(fakeBreed))
            .Returns(fakeBreed.Id);

            var controller = new BreedsController(mockBreedsBusinessLogic.Object);

            //Act
            IHttpActionResult obtainedResult = controller.Post(fakeBreed);
            var createdResult = obtainedResult as CreatedAtRouteNegotiatedContentResult <Breed>;

            //Assert
            mockBreedsBusinessLogic.VerifyAll();
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("DefaultApi", createdResult.RouteName);
            Assert.AreEqual(fakeBreed.Id, createdResult.RouteValues["id"]);
            Assert.AreEqual(fakeBreed, createdResult.Content);
        }