package com.rapidftr.services;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import javax.microedition.io.HttpConnection;
import org.junit.Before;
import org.junit.Test;
import com.rapidftr.datastore.FormStore;
import com.rapidftr.net.HttpService;
import com.rapidftr.utilities.HttpUtility;
import com.sun.me.web.path.Result;
import com.sun.me.web.request.Arg;
import com.sun.me.web.request.Response;
public class FormServiceTest {
private HttpService httpService;
private FormService formService;
private Object context;
private FormStore formStore;
@Before
public void setUp() {
httpService = mock(HttpService.class);
formStore = mock(FormStore.class);
formService = new FormService(httpService,formStore);
context = mock(Object.class);
}
@Test
public void shouldSendGetRequestToSever() {
formService.downloadForms();
Arg[] httpArgs = new Arg[1];
httpArgs[0] = HttpUtility.HEADER_ACCEPT_JSON;
verify(httpService).get("published_form_sections", null, httpArgs,
formService.requestHandler,null);
}
@Test
public void shouldSendFormsToFormStoreOnDownloadComplete()
throws Exception {
Response response = mock(Response.class);
Result mockResult = mock(Result.class);
when(response.getResult()).thenReturn(mockResult);
when(response.getCode()).thenReturn(HttpConnection.HTTP_OK);
String json = "json response";
when(mockResult.toString()).thenReturn(json);
formService.requestHandler.done(context, response);
verify(formStore).storeForms(response.getResult().toString());
}
}