/*
* Copyright 2015 herd contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.finra.herd.rest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.junit.Test;
import org.finra.herd.model.api.xml.DataProvider;
import org.finra.herd.model.api.xml.DataProviderCreateRequest;
import org.finra.herd.model.api.xml.DataProviderKey;
import org.finra.herd.model.api.xml.DataProviderKeys;
/**
* This class tests various functionality within the data provider REST controller.
*/
public class DataProviderRestControllerTest extends AbstractRestTest
{
@Test
public void testCreateDataProvider() throws Exception
{
// Create a data provider.
DataProvider resultDataProvider = dataProviderRestController.createDataProvider(new DataProviderCreateRequest(DATA_PROVIDER_NAME));
// Validate the returned object.
assertEquals(new DataProvider(DATA_PROVIDER_NAME), resultDataProvider);
}
@Test
public void testGetDataProvider() throws Exception
{
// Create and persist a data provider entity.
dataProviderDaoTestHelper.createDataProviderEntity(DATA_PROVIDER_NAME);
// Retrieve the data provider.
DataProvider resultDataProvider = dataProviderRestController.getDataProvider(DATA_PROVIDER_NAME);
// Validate the returned object.
assertEquals(new DataProvider(DATA_PROVIDER_NAME), resultDataProvider);
}
@Test
public void testDeleteDataProvider() throws Exception
{
// Create a data provider key.
DataProviderKey dataProviderKey = new DataProviderKey(DATA_PROVIDER_NAME);
// Create and persist a data provider entity.
dataProviderDaoTestHelper.createDataProviderEntity(DATA_PROVIDER_NAME);
// Validate that this data provider exists.
assertNotNull(dataProviderDao.getDataProviderByKey(dataProviderKey));
// Delete this data provider.
DataProvider deletedDataProvider = dataProviderRestController.deleteDataProvider(DATA_PROVIDER_NAME);
// Validate the returned object.
assertEquals(new DataProvider(DATA_PROVIDER_NAME), deletedDataProvider);
// Ensure that this data provider is no longer there.
assertNull(dataProviderDao.getDataProviderByKey(dataProviderKey));
}
@Test
public void testGetDataProviders() throws Exception
{
// Create and persist data provider entities.
for (DataProviderKey key : DATA_PROVIDER_KEYS)
{
dataProviderDaoTestHelper.createDataProviderEntity(key.getDataProviderName());
}
// Retrieve a list of data provider keys.
DataProviderKeys resultDataProviderKeys = dataProviderRestController.getDataProviders();
// Validate the returned object.
assertEquals(DATA_PROVIDER_KEYS, resultDataProviderKeys.getDataProviderKeys());
}
}