package org.ei.drishti.action; import org.ei.drishti.scheduler.router.MilestoneEvent; import org.ei.drishti.service.scheduling.ANCSchedulesService; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.motechproject.scheduler.domain.MotechEvent; import java.util.HashMap; import java.util.Map; import static org.mockito.Mockito.verify; import static org.mockito.MockitoAnnotations.initMocks; import static org.motechproject.scheduletracking.api.events.constants.EventDataKeys.EXTERNAL_ID; import static org.motechproject.scheduletracking.api.events.constants.EventDataKeys.SCHEDULE_NAME; public class ANCMissedActionTest { @Mock ANCSchedulesService schedulesService; @Before public void setUp() throws Exception { initMocks(this); } @Test public void shouldMentionThatANCVisitHasBeenMissedForScheduleAndExternalIdSpecifiedByEvent() { ForceFulfillAction action = new ForceFulfillAction(schedulesService); action.invoke(event("Schedule X", "Case Y"), new HashMap<String, String>()); verify(schedulesService).forceFulfillMilestone("Case Y", "Schedule X"); } private MilestoneEvent event(String scheduleName, String externalId) { Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put(SCHEDULE_NAME, scheduleName); parameters.put(EXTERNAL_ID, externalId); return new MilestoneEvent(new MotechEvent("Subject", parameters)); } }