package com.jboss.dvd.seam.test;
import java.io.File;
import java.math.BigDecimal;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.OverProtocol;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.seam.mock.JUnitSeamTest;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.importer.ZipImporter;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.jboss.dvd.seam.Accept;
import com.jboss.dvd.seam.StoreManager;
@RunWith(Arquillian.class)
public class StoreManagerTest
extends JUnitSeamTest
{
@Deployment(name = "StoreManagerTest")
@OverProtocol("Servlet 3.0")
public static Archive<?> createDeployment()
{
WebArchive web = ShrinkWrap.create(ZipImporter.class, "seam-dvdstore.war").importFrom(new File("target/seam-dvdstore.war")).as(WebArchive.class);
web.addPackages(true, Accept.class.getPackage());
return web;
}
@Test
public void testTopProducts()
throws Exception
{
new FacesRequest() {
StoreManager manager;
@Override
protected void updateModelValues()
{
manager = (StoreManager) getInstance("stats");
}
@Override
protected void renderResponse()
{
// these are from order instances -
Assert.assertEquals("number orders", 0L, manager.getNumberOrders());
Assert.assertEquals("total sales", BigDecimal.ZERO, manager.getTotalSales());
// these are from inventory
Assert.assertEquals("units sold", 5735, manager.getUnitsSold());
Assert.assertEquals("total inventory", 23432, manager.getTotalInventory());
}
}.run();
}
}