public void GetBookByName_CorrectStringPassed_OkResultWithValue()
        {
            var serviceMock     = Substitute.For <IBookService>();
            var booksController = new BooksController(serviceMock);

            var result = booksController.GetBookByName("AnyBookName");

            Assert.IsInstanceOf <OkNegotiatedContentResult <BookDto> >(result);
        }
        public void GetBookByName_CorrectStringPassed_CallsService()
        {
            var serviceMock     = Substitute.For <IBookService>();
            var booksController = new BooksController(serviceMock);

            booksController.GetBookByName("AnyBookName");

            serviceMock.Received().GetSingle(Arg.Any <string>());
        }
        public void GetBookByName_EmptyStringPassed_BadRequest()
        {
            var serviceStub     = Substitute.For <IBookService>();
            var booksController = new BooksController(serviceStub);

            var result = booksController.GetBookByName("");

            Assert.IsInstanceOf <BadRequestErrorMessageResult>(result);
        }
        public void GetBookByName_ServiceThrows_Throws()
        {
            var serviceStub = Substitute.For <IBookService>();

            serviceStub.When(service => service.GetSingle(Arg.Any <string>()))
            .Do(callback =>
            {
                throw new Exception();
            });
            var booksController = new BooksController(serviceStub);

            Assert.Throws <HttpResponseException>(() => booksController.GetBookByName("AnyBookName"));
        }