Ejemplo n.º 1
0
        public void UpdateBook_ExistingBook_ReturnsGetBookDto()
        {
            AddBookDto newBook = BookTestData.AddBookDto();

            mapperMock.Setup(m => m.Map <Book>(It.IsAny <AddBookDto>())).Returns(BookTestData.Book());
            mapperMock.Setup(m => m.Map <UpdateBookDto>(It.IsAny <GetBookDto>())).Returns(BookTestData.AddBookDtoToUpdateBookDtoMapping());
            mapperMock.Setup(m => m.Map <GetBookDto>(It.IsAny <Book>())).Returns(BookTestData.AddBookDtoToGetBookDtoMapping());

            BookService bookService = new BookService(mapperMock.Object, dbContextMock.Object);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto addedBook = addBookResponse.Data.First();

            UpdateBookDto updatedBook = mapperMock.Object.Map <UpdateBookDto>(addedBook);

            updatedBook.Price = 900;

            ServiceResponse <GetBookDto> updatedBookResponse = bookService.UpdateBook(updatedBook);
            GetBookDto savedBook = updatedBookResponse.Data;

            Assert.That(updatedBookResponse.Success, Is.EqualTo(true));
            Assert.That(updatedBookResponse, Is.InstanceOf <ServiceResponse <GetBookDto> >());
            Assert.That(savedBook, Is.InstanceOf <GetBookDto>());
            Assert.That(savedBook.Price, Is.EqualTo(updatedBook.Price));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> DisplayBookDetails(string id)
        {
            string decryptedId = dataProtector.Unprotect(id);
            int    bookId      = Convert.ToInt32(decryptedId);

            GetBookDto book = bookRepository.GetBookDetails(bookId);

            if (book == null)
            {
                ViewBag.Object = "Book";
                return(View("Views/Home/ObjectNotFound.cshtml", bookId));
            }

            Category category = categoryRepository.GetCategory(book.CategoryId);

            if (category == null)
            {
                ViewBag.Object = "Category";
                return(View("Views/Home/ObjectNotFound.cshtml", bookId));
            }

            BookUser bookUser = new BookUser
            {
                StartDate = DateTime.Today,
                EndDate   = DateTime.Today,
                BookId    = book.Id
            };

            if (User.Identity.IsAuthenticated)
            {
                var user = await userManager.FindByEmailAsync(User.Identity.Name);

                bookUser.UserId = user.Id;
            }
            else
            {
                bookUser.UserId = "";
            }

            DisplayBookDetailsViewModel viewModel = new DisplayBookDetailsViewModel
            {
                Book     = book,
                Category = category,
                BookUser = bookUser
            };

            var getOrderdBook = bookUserRepository.Find(bookUser.BookId, bookUser.UserId);

            if (getOrderdBook == null)
            {
                viewModel.IsReserved = false;
            }
            else
            {
                viewModel.IsReserved = true;
            }

            return(View("Views/Book/DisplayBookDetails.cshtml", viewModel));
        }
Ejemplo n.º 3
0
        public DisplayBookDetailsViewModel GetDisplayBookDetailsViewModel(BookUser bookUser)
        {
            GetBookDto book     = bookRepository.GetBookDetails(bookUser.BookId);
            Category   category = categoryRepository.GetCategory(book.CategoryId);
            DisplayBookDetailsViewModel viewModel = new DisplayBookDetailsViewModel
            {
                Book     = book,
                Category = category,
                BookUser = bookUser
            };

            return(viewModel);
        }
Ejemplo n.º 4
0
        public async Task GetSingleBook_WithValidInput_ReturnsBook()
        {
            GetBookDto addedBook = await this.AddBook("Delivering Happiness");

            var response = await _client.GetAsync("/book/" + addedBook.Id);

            var responseString = await response.Content.ReadAsStringAsync();

            var getBookResponse = JsonConvert.DeserializeObject <ServiceResponse <GetBookDto> >(responseString);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            getBookResponse.Data.Should().BeOfType <GetBookDto>();
        }
Ejemplo n.º 5
0
        public void UpdateBook_NonExistingBook_ReturnsError()
        {
            UpdateBookDto updatedBook = BookTestData.UpdateBookDto();

            BookService bookService = new BookService(mapperMock.Object, dbContextMock.Object);

            ServiceResponse <GetBookDto> updatedBookResponse = bookService.UpdateBook(updatedBook);
            GetBookDto savedBook = updatedBookResponse.Data;

            Assert.That(updatedBookResponse.Success, Is.EqualTo(false));
            Assert.That(updatedBookResponse, Is.InstanceOf <ServiceResponse <GetBookDto> >());
            Assert.That(updatedBookResponse.Data, Is.EqualTo(null));
        }
Ejemplo n.º 6
0
        public async Task DeleteBook_WithValidInput_ReturnsBook()
        {
            string     bookName  = "Delivering Happiness";
            GetBookDto addedBook = await this.AddBook(bookName);

            var response = await _client.DeleteAsync("/book/" + addedBook.Id);

            var responseString = await response.Content.ReadAsStringAsync();

            var deleteBookResponse = JsonConvert.DeserializeObject <ServiceResponse <List <GetBookDto> > >(responseString);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            deleteBookResponse.Data.Should().BeOfType <List <GetBookDto> >();
        }
Ejemplo n.º 7
0
        public void UpdateBook_NonExistingBook_ReturnsError()
        {
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            UpdateBookDto updatedBook = GetUpdateBookDto();

            BookService bookService = new BookService(mapper, dbContext);

            ServiceResponse <GetBookDto> updatedBookResponse = bookService.UpdateBook(updatedBook);
            GetBookDto savedBook = updatedBookResponse.Data;

            Assert.That(updatedBookResponse.Success, Is.EqualTo(false));
            Assert.That(updatedBookResponse, Is.InstanceOf <ServiceResponse <GetBookDto> >());
            Assert.That(updatedBookResponse.Data, Is.EqualTo(null));
        }
Ejemplo n.º 8
0
        public void DeleteBook_ExistingBook_ReturnsGetBookDtoList()
        {
            AddBookDto newBook = BookTestData.AddBookDto();

            mapperMock.Setup(m => m.Map <Book>(It.IsAny <AddBookDto>())).Returns(BookTestData.Book());
            mapperMock.Setup(m => m.Map <GetBookDto>(It.IsAny <Book>())).Returns(BookTestData.BookMapping());

            BookService bookService = new BookService(mapperMock.Object, dbContextMock.Object);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto addedBook = addBookResponse.Data.First();

            ServiceResponse <List <GetBookDto> > deleteBookResponse = bookService.DeleteBook(addedBook.Id);

            Assert.That(deleteBookResponse.Success, Is.EqualTo(true));
            Assert.That(deleteBookResponse, Is.InstanceOf <ServiceResponse <List <GetBookDto> > >());
            Assert.That(deleteBookResponse.Data, Is.InstanceOf <List <GetBookDto> >());
        }
Ejemplo n.º 9
0
        public void DeleteBook_ExistingBook_ReturnsGetBookDtoList()
        {
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            AddBookDto newBook = GetAddBookDto();

            BookService bookService = new BookService(mapper, dbContext);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto addedBook = addBookResponse.Data.First();

            ServiceResponse <List <GetBookDto> > deleteBookResponse = bookService.DeleteBook(addedBook.Id);

            Assert.That(deleteBookResponse.Success, Is.EqualTo(true));
            Assert.That(deleteBookResponse, Is.InstanceOf <ServiceResponse <List <GetBookDto> > >());
            Assert.That(deleteBookResponse.Data, Is.InstanceOf <List <GetBookDto> >());
            Assert.That(deleteBookResponse.Data.Count, Is.EqualTo(0));
        }
Ejemplo n.º 10
0
        public void AddBook_NewBook_ReturnsGetBookDtoList()
        {
            mapperMock.Setup(m => m.Map <Book>(It.IsAny <AddBookDto>())).Returns(BookTestData.Book());
            mapperMock.Setup(m => m.Map <GetBookDto>(It.IsAny <Book>())).Returns(BookTestData.GetBookDto());

            AddBookDto newBook = BookTestData.AddBookDto();

            BookService bookService = new BookService(mapperMock.Object, dbContextMock.Object);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto savedBook = addBookResponse.Data.First();

            Assert.That(addBookResponse.Success, Is.EqualTo(true));
            Assert.That(addBookResponse, Is.InstanceOf <ServiceResponse <List <GetBookDto> > >());
            Assert.That(addBookResponse.Data, Is.InstanceOf <List <GetBookDto> >());
            Assert.That(addBookResponse.Data.Count, Is.EqualTo(2));
            Assert.That(savedBook, Is.InstanceOf <GetBookDto>());
            Assert.That(savedBook.Name, Is.EqualTo(newBook.Name));
            Assert.That(savedBook.Author, Is.EqualTo(newBook.Author));
        }
Ejemplo n.º 11
0
        public void AddBook_NewBook_ReturnsGetBookDtoList()
        {
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            AddBookDto newBook = GetAddBookDto();

            BookService bookService = new BookService(mapper, dbContext);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto savedBook = addBookResponse.Data.First();

            Assert.That(addBookResponse.Success, Is.EqualTo(true));
            Assert.That(addBookResponse, Is.InstanceOf <ServiceResponse <List <GetBookDto> > >());
            Assert.That(addBookResponse.Data, Is.InstanceOf <List <GetBookDto> >());
            Assert.That(addBookResponse.Data.Count, Is.EqualTo(1));
            Assert.That(savedBook, Is.InstanceOf <GetBookDto>());
            Assert.That(savedBook.Name, Is.EqualTo(newBook.Name));
            Assert.That(savedBook.Author, Is.EqualTo(newBook.Author));
            Assert.That(savedBook.Id, Is.EqualTo(1));
        }
Ejemplo n.º 12
0
        public void GetBookById_BookId_ReturnsGetBookDto()
        {
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            AddBookDto newBook = GetAddBookDto();

            BookService bookService = new BookService(mapper, dbContext);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto savedBook = addBookResponse.Data.First();

            ServiceResponse <GetBookDto> getBookResponse = bookService.GetBookById(savedBook.Id);
            GetBookDto receivedBook = getBookResponse.Data;

            Assert.That(getBookResponse.Success, Is.EqualTo(true));
            Assert.That(getBookResponse, Is.InstanceOf <ServiceResponse <GetBookDto> >());
            Assert.That(getBookResponse.Data, Is.InstanceOf <GetBookDto>());
            Assert.That(receivedBook, Is.InstanceOf <GetBookDto>());
            Assert.That(receivedBook.Name, Is.EqualTo(savedBook.Name));
            Assert.That(receivedBook.Author, Is.EqualTo(savedBook.Author));
        }
Ejemplo n.º 13
0
        public void UpdateBook_ExistingBook_ReturnsGetBookDto()
        {
            dbContext.Database.EnsureDeleted();
            dbContext.Database.EnsureCreated();

            AddBookDto newBook = GetAddBookDto();

            BookService bookService = new BookService(mapper, dbContext);

            ServiceResponse <List <GetBookDto> > addBookResponse = bookService.AddBook(newBook);
            GetBookDto addedBook = addBookResponse.Data.First();

            UpdateBookDto updatedBook = mapper.Map <UpdateBookDto>(addedBook);

            updatedBook.Price = 900;

            ServiceResponse <GetBookDto> updatedBookResponse = bookService.UpdateBook(updatedBook);
            GetBookDto savedBook = updatedBookResponse.Data;

            Assert.That(updatedBookResponse.Success, Is.EqualTo(true));
            Assert.That(updatedBookResponse, Is.InstanceOf <ServiceResponse <GetBookDto> >());
            Assert.That(savedBook, Is.InstanceOf <GetBookDto>());
            Assert.That(savedBook.Price, Is.EqualTo(updatedBook.Price));
        }
Ejemplo n.º 14
0
        public async Task UpdateBook_WithValidInput_ReturnsBook()
        {
            GetBookDto addedBook = await this.AddBook("Delivering Happiness");

            var request = new
            {
                Url  = "/book",
                Body = new
                {
                    Id   = addedBook.Id,
                    Name = "Updated Name"
                }
            };

            var body     = new StringContent(JsonConvert.SerializeObject(request.Body), Encoding.Default, "application/json");
            var response = await _client.PutAsync(request.Url, body);

            var responseString = await response.Content.ReadAsStringAsync();

            var updateBookResponse = JsonConvert.DeserializeObject <ServiceResponse <GetBookDto> >(responseString);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            updateBookResponse.Data.Should().BeOfType <GetBookDto>();
        }