/* * Copyright (c) 2014. The Trustees of Indiana University. * * This version of the code is licensed under the MPL 2.0 Open Source license with additional * healthcare disclaimer. If the user is an entity intending to commercialize any application * that uses this code in a for-profit venture, please contact the copyright holder. */ package com.muzima.view.forms; import com.muzima.api.model.FormData; import com.muzima.controller.FormController; import com.muzima.controller.LocationController; import com.muzima.controller.ProviderController; import com.muzima.service.HTMLFormObservationCreator; import com.muzima.testSupport.CustomTestRunner; import com.muzima.utils.Constants; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(RobolectricTestRunner.class) @Config(manifest= Config.NONE) public class HTMLFormDataStoreTest { private FormController formController; private LocationController locationController; private HTMLFormWebViewActivity formWebViewActivity; private FormData formData; private HTMLFormObservationCreator htmlFormObservationCreator; private HTMLFormDataStore htmlFormDataStore; private ProviderController providerController; @Before public void setUp() throws Exception { formController = mock(FormController.class); locationController = mock(LocationController.class); providerController = mock(ProviderController.class); formWebViewActivity = mock(HTMLFormWebViewActivity.class); formData = mock(FormData.class); htmlFormObservationCreator = mock(HTMLFormObservationCreator.class); htmlFormDataStore = new HTMLFormDataStore(formWebViewActivity, formController,locationController , formData, providerController){ @Override public HTMLFormObservationCreator getFormParser(){ return htmlFormObservationCreator; } }; } @Test public void shouldParsedPayloadForCompletedForm() { when(formWebViewActivity.getString(anyInt())).thenReturn("success"); String jsonPayLoad = "jsonPayLoad"; htmlFormDataStore.saveHTML(jsonPayLoad, Constants.STATUS_COMPLETE); verify(htmlFormObservationCreator).createAndPersistObservations(jsonPayLoad,formData.getUuid()); } @Test public void shouldNotParseIncompletedForm() { when(formWebViewActivity.getString(anyInt())).thenReturn("success"); String jsonPayLoad = "jsonPayLoad"; htmlFormDataStore.saveHTML(jsonPayLoad, Constants.STATUS_INCOMPLETE); verify(htmlFormObservationCreator, times(0)).createAndPersistObservations(jsonPayLoad,formData.getUuid()); } }