package org.vaadin.smartgwt.server.grid; import static argo.jdom.JsonNodeFactories.*; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; import org.vaadin.smartgwt.server.data.RecordJSONUpdater; import argo.jdom.JsonNode; import com.google.common.collect.Lists; public class ListGridRecordFactoryTest { private ListGridRecordFactory recordFactory; private RecordJSONUpdater updater; @Before public void before() { recordFactory = new ListGridRecordFactory(updater = mock(RecordJSONUpdater.class)); } @Test public void test_newRecord() { assertTrue(recordFactory.newListGridRecord(aJsonObject()) != null); } @Test public void test_returnsNullWhenNullJsonNode() { assertNull(recordFactory.newListGridRecord(aJsonNull())); } @Test public void test_callsUpdaterWhenCreatingRecord() { final JsonNode node = aJsonObject(); final ListGridRecord record = recordFactory.newListGridRecord(node); verify(updater).update(record, node); } @Test public void test_createsRecordsArrayMatchingSizeOfNodesList() { final ArrayList<JsonNode> nodes = Lists.<JsonNode> newArrayList(aJsonObject()); assertEquals(nodes.size(), recordFactory.newListGridRecords(nodes).length); } @Test public void test_callsUpdaterOnRecordsArrayCreation() { final ArrayList<JsonNode> nodes = Lists.<JsonNode> newArrayList(aJsonObject(), aJsonObject()); final ListGridRecord[] records = recordFactory.newListGridRecords(nodes); verify(updater).update(records[0], nodes.get(0)); verify(updater).update(records[1], nodes.get(1)); } }