package http.resource; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.lang.reflect.Field; import javax.servlet.http.HttpServletRequest; import junit.framework.TestCase; import nebula.data.DataStore; import nebula.data.Entity; import nebula.data.json.DataHelper; import org.mockito.Mock; import org.mockito.MockitoAnnotations; public class EntityResouceTest extends TestCase { @Mock DataHelper<Entity, Reader, Writer> json; @Mock HttpServletRequest req; @Mock DataStore<Entity> datastore; @Mock Entity data; String key = "EntityResouceTest"; protected void setUp() throws Exception { MockitoAnnotations.initMocks(this); } protected void tearDown() throws Exception { super.tearDown(); } public final void testGet() throws IOException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { EntityResouce entityResouce = new EntityResouce(null, json, datastore, null, key); when(datastore.get(key)).thenReturn(data); long lastModified = 100L; when(data.get("LastModified_")).thenReturn(lastModified); entityResouce.get(req); verify(datastore).get(key); verify(data).get("LastModified_"); verify(json).stringifyTo(eq(data), any(OutputStreamWriter.class)); // Method method = targetClass.getDeclaredMethod(methodName, // argClasses); // method.setAccessible(true); // return method.invoke(targetObject, argObjects); assertEquals(lastModified, getPrivateField(AbstractResouce.class, entityResouce, "lastModified")); } <T> Object getPrivateField(T o, String name) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { Field field = o.getClass().getDeclaredField("lastModified"); field.setAccessible(true); return field.get(o); } <T> Object getPrivateField(Class<?> clz, T o, String name) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { Field field = clz.getDeclaredField("lastModified"); field.setAccessible(true); return field.get(o); } public final void testPut() { // fail TODO ("Not yet implemented"); } public final void testDelete() { // fail TODO ("Not yet implemented"); } public final void testEntityResouce() { // fail TODO ("Not yet implemented"); } public final void testAbstractResouce() { // fail TODO ("Not yet implemented"); } public final void testHeader() { // fail TODO ("Not yet implemented"); } public final void testPost() { // fail TODO ("Not yet implemented"); } public final void testHandle() { // fail TODO ("Not yet implemented"); } }