package io.katharsis.repository;
import io.katharsis.locator.JsonServiceLocator;
import io.katharsis.locator.SampleJsonServiceLocator;
import io.katharsis.repository.exception.RepositoryInstanceNotFoundException;
import io.katharsis.resource.mock.repository.TaskRepository;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class RepositoryInstanceBuilderTest {
@Test
public void onExistingInstanceShouldReturnValue() throws Exception {
// GIVEN
RepositoryInstanceBuilder<TaskRepository> sut =
new RepositoryInstanceBuilder<>(new SampleJsonServiceLocator(), TaskRepository.class);
// WHEN
TaskRepository result = sut.buildRepository();
// THEN
assertThat(sut.getRepositoryClass()).isEqualTo(TaskRepository.class);
assertThat(result).isInstanceOf(TaskRepository.class);
}
@Test(expected = RepositoryInstanceNotFoundException.class)
public void onNullInstanceShouldThrowException() throws Exception {
// GIVEN
RepositoryInstanceBuilder<TaskRepository> sut =
new RepositoryInstanceBuilder<>(new JsonServiceLocator() {
@Override
public <T> T getInstance(Class<T> clazz) {
return null;
}
}, TaskRepository.class);
// WHEN
sut.buildRepository();
}
}