package com.jboss.dvd.seam.test; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; import java.math.BigDecimal; import java.util.List; import org.jboss.seam.mock.SeamTest; import org.testng.annotations.Test; import com.jboss.dvd.seam.Product; public class BestSellersTest extends SeamTest { @Test public void testTopProducts() throws Exception { new NonFacesRequest() { @SuppressWarnings("unchecked") @Override protected void renderResponse() { List<Product> products = (List<Product>) getValue("#{topProducts}"); assertNotNull("topProducts", products); assertEquals("topProducts size", 8, products.size()); Product prev = null; for (Product p: products) { if (prev != null) { assertTrue("descending order", p.getInventory().getSales() <= prev.getInventory().getSales()); } prev = p; } // 14.98/29.99/39.95 assertEquals("price 1", new BigDecimal("14.98"), products.get(0).getPrice()); assertEquals("price 2", new BigDecimal("29.99"), products.get(1).getPrice()); assertEquals("price 3", new BigDecimal("39.95"), products.get(2).getPrice()); } }.run(); } }