Package org.mockserver.web.controller

Source Code of org.mockserver.web.controller.BooksPageControllerTest

package org.mockserver.web.controller;

import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockserver.model.Book;
import org.mockserver.service.BookService;
import org.springframework.ui.Model;

import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.same;
import static org.mockito.Mockito.*;
import static org.mockito.MockitoAnnotations.initMocks;

/**
* @author jamesdbloom
*/
public class BooksPageControllerTest {

    @Mock
    private BookService bookService;
    @InjectMocks
    private BooksPageController booksPageController;

    @Before
    public void setupMocks() {
        booksPageController = new BooksPageController();

        initMocks(this);
    }

    @Test
    public void shouldLoadListOfBooks() {
        // given
        Model mockModel = mock(Model.class);
        Book[] bookList = {};
        when(bookService.getAllBooks()).thenReturn(bookList);

        // when
        String viewName = booksPageController.getBookList(mockModel);

        // then
        assertEquals("books", viewName);
        verify(mockModel).addAttribute(eq("books"), eq(bookList));
    }

    @Test
    public void shouldLoadSingleBook() {
        // given
        Model mockModel = mock(Model.class);
        Book book = new Book(1, "title", "author", "isbn", "publicationDate");
        when(bookService.getBook("1")).thenReturn(book);

        // when
        String viewName = booksPageController.getBook("1", mockModel);

        // then
        assertEquals("book", viewName);
        verify(mockModel).addAttribute(eq("book"), same(book));
    }
}
TOP

Related Classes of org.mockserver.web.controller.BooksPageControllerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.