1 package org.paneris.jammyjoes.mvp; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import junit.framework.TestCase; 7 8 import org.melati.poem.JdbcPersistent; 9 import org.melati.poem.Persistable; 10 import org.melati.poem.Persistent; 11 import org.melati.poem.Selectable; 12 13 import com.mockobjects.dynamic.C; 14 import com.mockobjects.dynamic.Mock; 15 16 public class CatalogueEntryTest extends TestCase { 17 18 public void testPresenter() { 19 20 Mock contextControl = new Mock(Context.class); 21 contextControl.expect("put",C.args(C.eq("items"), C.isA(List.class))); 22 contextControl.matchAndReturn("get", C.args(C.isA(IntegerConverter.class), C.isA(String.class)), null); 23 Context context = (Context)contextControl.proxy(); 24 25 Presenter unit = new CatalogueEntryPresenter(null, context); 26 27 assertEquals(ProductSelectionFromContext.class, unit.createSelection().getClass()); 28 assertEquals(CollectOverTheTopCommand.class, unit.createCommand().getClass()); 29 30 contextControl.verify(); 31 } 32 33 public void testProductSelectionFromContext() { 34 35 Persistent expected = new JdbcPersistent(); 36 37 Mock productTableController = new Mock(Selectable.class); 38 productTableController.expectAndReturn("getObject", new Integer(1), expected); 39 40 Mock contextController = new Mock(Context.class); 41 contextController.matchAndReturn("get", C.args(C.isA(IntegerConverter.class), C.eq("0")), new Integer(1)); 42 contextController.matchAndReturn("get", C.args(C.isA(IntegerConverter.class), C.isA(String.class)), null); 43 44 Selection unit = new ProductSelectionFromContext((Selectable)productTableController.proxy(), (Context)contextController.proxy()); 45 46 Mock commandController = new Mock(Command.class); 47 commandController.expect("visit", expected); 48 49 unit.visitEach((Command)commandController.proxy()); 50 51 productTableController.verify(); 52 contextController.verify(); 53 commandController.verify(); 54 } 55 56 public void testCollectOverTheTopCommand() { 57 int size = 10; 58 59 Mock contextController = new Mock(Context.class); 60 contextController.matchAndReturn("get", C.args(C.isA(IntegerConverter.class), C.isA(String.class)), null); 61 62 Integer expectedTroid = new Integer(1); 63 Mock productController = new Mock(Persistable.class); 64 productController.matchAndReturn("getTroid",expectedTroid); 65 Persistable expected = (Persistable)productController.proxy(); 66 ArrayList list = new ArrayList(); 67 Command unit = new CollectOverTheTopCommand(list, size, (Context)contextController.proxy()); 68 unit.visit(expected); 69 unit.visit(expected); 70 assertEquals(list.size(), size); 71 assertEquals(((UncheckedProduct)list.get(0)).getId(), expectedTroid); 72 assertEquals(((UncheckedProduct)list.get(1)).getId(), expectedTroid); 73 assertEquals(((UncheckedProduct)list.get(9)).getId(), null); 74 } 75 }