Package org.books.test.acceptance

Source Code of org.books.test.acceptance.CheckoutSteps

package org.books.test.acceptance;

import cuke4duke.annotation.I18n.EN.Given;
import cuke4duke.annotation.I18n.EN.Then;
import cuke4duke.annotation.I18n.EN.When;
import org.apache.openejb.api.LocalClient;
import org.books.business.CartManager;
import org.books.dao.BookDao;
import org.books.dao.OrderDao;
import org.books.domain.Book;
import org.books.domain.Order;

import javax.ejb.EJB;
import javax.naming.NamingException;
import java.util.List;

import static org.junit.Assert.assertEquals;

@LocalClient
public class CheckoutSteps extends ContainerSteps {

    @EJB
    private BookDao bookDao;
    @EJB
    private OrderDao orderDao;
    @EJB
    private CartManager cartManager;

    public CheckoutSteps(ContainerInitializer initializer) throws NamingException {
        super(initializer);
    }

    @Given("^my shopping cart contains ([\\d]+) book with price (.+)$")
    public void cartContainsBook(int count, double price) throws Exception {
        for (int i = 0; i < count; i++) {
            Book book = new Book();
            book.setPrice(price);
            bookDao.addBook(book); // book must be persisted in order to persist the order later

            cartManager.AddBook(book, 1);
        }
    }

    @When("^I check out the cart$")
    public void checkoutCart() throws Exception {

        cartManager.checkout();
    }

    @Then("^an order should be created with total price (.+)$")
    public void checkOrderCreationAndPrice(double price) {

        List<Order> orders = orderDao.getOrders();
        assertEquals(1, orders.size());
        Order order = orders.get(0);
        assertEquals(price, order.getPrice(), 0);
    }

    @Then("^the order status should be '(.*)'$")
    public void theOrderStateShouldBe(String state) {
        Order.Status status = Order.Status.valueOf(state);

        List<Order> orders = orderDao.getOrders();
        assertEquals(1, orders.size());
        Order order = orders.get(0);
        assertEquals(status, order.getStatus());
    }
}
TOP

Related Classes of org.books.test.acceptance.CheckoutSteps

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.