/* InMemoryDataProvidersServiceTest.java - created on Jan 6, 2014, Copyright (c) 2013 Europeana Foundation, all rights reserved */ package eu.europeana.ecloud.service.uis; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import eu.europeana.cloud.common.exceptions.ProviderDoesNotExistException; import eu.europeana.cloud.common.model.DataProvider; import eu.europeana.cloud.common.model.DataProviderProperties; import eu.europeana.cloud.common.response.ResultSlice; import eu.europeana.cloud.service.uis.InMemoryDataProviderService; import eu.europeana.cloud.service.uis.dao.InMemoryDataProviderDAO; import eu.europeana.cloud.service.uis.exception.ProviderAlreadyExistsException; /** * InMemory data provider service tests * * @author Yorgos Mamakis (Yorgos.Mamakis@ europeana.eu) * @since Jan 6, 2014 */ public class InMemoryDataProvidersServiceTest { /** * Creates a new instance of this class. */ public InMemoryDataProvidersServiceTest() { } private InMemoryDataProviderService service; private final static String PROVIDERID = "providerId"; private final static String ORGANIZATIONNAME = "org"; private final static String OFFICIALADDRESS = "address"; private final static String ORGANIZATIONWEBSITE = "organizationws"; private final static String ORGANIZATIONWEBSITEURL = "organizationwsURL"; private final static String DIGITALLIBRARY = "digitalLibraryws"; private final static String DIGITALLIBRARYURL = "digitalLibrarywsurl"; private final static String CONTACTPERSON = "contact"; private final static String REMARKS = "remarks"; /** * Prepare Unit tests */ @Before public void prepare() { service = new InMemoryDataProviderService(new InMemoryDataProviderDAO()); } /** * Test Create Provider * @throws ProviderAlreadyExistsException */ @Test public void testCreateProvider() throws ProviderAlreadyExistsException { DataProviderProperties orig = createDataProviderProperties(); DataProvider dp = service.createProvider(PROVIDERID, orig); assertEquals(dp.getId(),PROVIDERID); assertEquals(dp.getProperties(),orig); } /** * Test Create Provider Exception exists * @throws ProviderAlreadyExistsException */ @Test (expected = ProviderAlreadyExistsException.class) public void testCreateProviderAlreadyExists() throws ProviderAlreadyExistsException { DataProviderProperties orig = createDataProviderProperties(); service.createProvider(PROVIDERID, orig); service.createProvider(PROVIDERID, orig); } /** * Test Get Provider with exception * @throws ProviderDoesNotExistException */ @Test(expected = ProviderDoesNotExistException.class) public void testGetProviderDoesNotExist() throws ProviderDoesNotExistException{ service.getProvider(PROVIDERID); } /** * Test Get Provider * @throws ProviderDoesNotExistException * @throws ProviderAlreadyExistsException */ @Test public void testGetProvider() throws ProviderDoesNotExistException, ProviderAlreadyExistsException{ DataProviderProperties orig = createDataProviderProperties(); DataProvider dp = service.createProvider(PROVIDERID, orig); DataProvider retDp = service.getProvider(PROVIDERID); assertEquals(dp,retDp); } /** * Test Get Provider with exception * @throws ProviderDoesNotExistException */ @Test(expected = ProviderDoesNotExistException.class) public void testUpdateProviderDoesNotExist() throws ProviderDoesNotExistException{ service.updateProvider(PROVIDERID,new DataProviderProperties()); } /** * Test Get Provider * @throws ProviderDoesNotExistException * @throws ProviderAlreadyExistsException */ @Test public void testUpdateProvider() throws ProviderDoesNotExistException, ProviderAlreadyExistsException{ DataProviderProperties orig = createDataProviderProperties(); DataProvider dp = service.createProvider(PROVIDERID, new DataProviderProperties()); DataProvider retDp = service.getProvider(PROVIDERID); assertEquals(dp,retDp); DataProvider dpUp = service.updateProvider(PROVIDERID, orig); retDp = service.getProvider(PROVIDERID); assertEquals(dpUp, retDp); } /** * Test Get Provider with exception */ @Test(expected = UnsupportedOperationException.class) public void testGetProvidersUnsupported() { service.getProviders(PROVIDERID, 1); } /** * Test Get Provider * @throws ProviderDoesNotExistException * @throws ProviderAlreadyExistsException */ @Test public void testGetProviders() throws ProviderDoesNotExistException, ProviderAlreadyExistsException{ DataProvider dp = service.createProvider(PROVIDERID, new DataProviderProperties()); ResultSlice<DataProvider> retDp = service.getProviders(null,1); assertEquals(retDp.getResults().size(),1); assertEquals(retDp.getResults().get(0), dp); } /** * @return */ private DataProviderProperties createDataProviderProperties() { return new DataProviderProperties(ORGANIZATIONNAME, OFFICIALADDRESS, ORGANIZATIONWEBSITE, ORGANIZATIONWEBSITEURL, DIGITALLIBRARY, DIGITALLIBRARYURL, CONTACTPERSON, REMARKS); } }