public void Update_NullPassed_BadRequestReturned()
        {
            var audioBook = new AudioBook();
            var id        = Guid.NewGuid();

            var audioServiceMock = new Mock <IAudioBookService>();

            audioServiceMock.Setup(x => x.Update(It.IsAny <Guid>(), It.Is <AudioBook>(ab => ab == audioBook))).Returns(audioBook);

            var apiController = new AudioBookApiController(audioServiceMock.Object);

            var result = apiController.Update(id, null);

            Assert.True(result is BadRequestResult);
        }
        public void Update_AudioBookPassed_ReturnedProperAudioBook()
        {
            var id        = Guid.NewGuid();
            var audioBook = new AudioBook()
            {
                Id = id
            };

            var audioServiceMock = new Mock <IAudioBookService>();

            audioServiceMock.Setup(x => x.Update(It.IsAny <Guid>(), It.Is <AudioBook>(ab => ab == audioBook))).Returns(audioBook);

            var apiController = new AudioBookApiController(audioServiceMock.Object);

            var result = apiController.Update(id, audioBook);

            audioServiceMock.Verify(x => x.Update(It.Is <Guid>(guid => guid == id), It.Is <AudioBook>(ab => ab == audioBook)));
            Assert.True(result is OkResult);
        }
        public void Update_ExceptionTrowed_NotFoundReturned()
        {
            var id        = Guid.NewGuid();
            var audioBook = new AudioBook()
            {
                Id = id
            };

            var audioServiceMock = new Mock <IAudioBookService>();

            audioServiceMock
            .Setup(x => x.Update(It.IsAny <Guid>(), It.Is <AudioBook>(ab => ab == audioBook)))
            .Throws(new Exception());

            var apiController = new AudioBookApiController(audioServiceMock.Object);

            var result = apiController.Update(id, audioBook);

            Assert.True(result is NotFoundResult);
        }