package org.cloudfoundry.community.servicebroker.datalifecycle.service; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.cloudfoundry.community.servicebroker.datalifecycle.model.SanitizationScript; import org.cloudfoundry.community.servicebroker.datalifecycle.repo.ScriptRepo; import org.cloudfoundry.community.servicebroker.datalifecycle.service.DataProviderService; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.MockitoAnnotations; public class DataProviderServiceTest { @Mock ScriptRepo scriptRepo; private DataProviderService service; @Before public void setUp() { MockitoAnnotations.initMocks(this); service = new DataProviderService(scriptRepo); } @Test public void itShouldSaveTheScript() { service.saveScript("The Script"); verify(scriptRepo, times(1)).save( argThat(new ArgumentMatcher<SanitizationScript>() { @Override public boolean matches(Object argument) { return ((SanitizationScript) argument).getScript() .equals("The Script"); } })); } @Test public void itShouldGetTheScript() { when(scriptRepo.findOne(SanitizationScript.ID)).thenReturn(new SanitizationScript("fake script")); assertThat(service.getScript(), is(notNullValue())); } @Test public void itShouldReturnNullIfTheresNoScript() { when(scriptRepo.findOne(SanitizationScript.ID)).thenReturn(null); assertNull(service.getScript()); } }