blob: 0f1aa8f0fa3feda43d0abef02377ceadbe551e56 [file] [log] [blame]
/**
* 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.apache.atlas.odf.core.test.discoveryservice;
import java.io.InputStream;
import org.apache.atlas.odf.api.ODFFactory;
import org.apache.atlas.odf.api.settings.validation.ValidationException;
import org.apache.atlas.odf.json.JSONUtils;
import org.apache.wink.json4j.JSONException;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceManager;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceEndpoint;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceJavaEndpoint;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceProperties;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceRuntimeStatistics;
import org.apache.atlas.odf.api.discoveryservice.DiscoveryServiceStatus;
import org.apache.atlas.odf.api.discoveryservice.ServiceNotFoundException;
public class DiscoveryServiceManagerTest {
final private static String ASYNCTESTWA_SERVICE_ID = "asynctestservice-with-annotations";
final private static String NEW_SERVICE_ID = "New_Service";
final private static String NEW_SERVICE_NAME = "Name of New Service";
final private static String NEW_SERVICE_DESCRIPTION = "Description of the New Service";
final private static String NEW_SERVICE_CLASSNAME = "TestAsyncDiscoveryService1";
final private static String UPDATED_SERVICE_DESCRIPTION = "Updated description of the New Service";
final private static String UPDATED_SERVICE_CLASSNAME = "TestSyncDiscoveryService1";
private void registerDiscoveryService(DiscoveryServiceProperties dsProperties) throws ValidationException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
discoveryServicesManager.createDiscoveryService(dsProperties);
}
private void replaceDiscoveryService(DiscoveryServiceProperties dsProperties) throws ValidationException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
discoveryServicesManager.replaceDiscoveryService(dsProperties);
}
private void unregisterDiscoveryService(String serviceId) throws ServiceNotFoundException, ValidationException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
discoveryServicesManager.deleteDiscoveryService(serviceId);
}
@Test
public void testGetDiscoveryServiceProperties() throws ServiceNotFoundException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
DiscoveryServiceProperties dsProperties = discoveryServicesManager.getDiscoveryServiceProperties(ASYNCTESTWA_SERVICE_ID);
Assert.assertNotNull(dsProperties);
}
@Ignore @Test // Ignoring testcase due to problem on Mac (issue #56)
public void testGetDiscoveryServiceStatus() throws ServiceNotFoundException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
DiscoveryServiceStatus dsStatus = discoveryServicesManager.getDiscoveryServiceStatus(ASYNCTESTWA_SERVICE_ID);
Assert.assertNotNull(dsStatus);
}
@Test // TODO: need to adjust as soon as runtime statistics are available
public void testGetDiscoveryServiceRuntimeStatistics() throws ServiceNotFoundException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
DiscoveryServiceRuntimeStatistics dsRuntimeStats = discoveryServicesManager.getDiscoveryServiceRuntimeStatistics(ASYNCTESTWA_SERVICE_ID);
Assert.assertNotNull(dsRuntimeStats);
long avgProcTime = dsRuntimeStats.getAverageProcessingTimePerItemInMillis();
Assert.assertEquals(0, avgProcTime);
}
@Test
public void testDeleteDiscoveryServiceRuntimeStatistics() throws ServiceNotFoundException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
discoveryServicesManager.deleteDiscoveryServiceRuntimeStatistics(ASYNCTESTWA_SERVICE_ID);
}
@Test
public void testGetDiscoveryServiceImage() throws ServiceNotFoundException {
DiscoveryServiceManager discoveryServicesManager = new ODFFactory().create().getDiscoveryServiceManager();
InputStream is = discoveryServicesManager.getDiscoveryServiceImage(ASYNCTESTWA_SERVICE_ID);
Assert.assertNull(is);
}
@Test
public void testCreateUpdateDelete() throws ServiceNotFoundException, ValidationException, JSONException {
DiscoveryServiceJavaEndpoint dse = new DiscoveryServiceJavaEndpoint();
dse.setClassName(NEW_SERVICE_CLASSNAME);
DiscoveryServiceProperties dsProperties = new DiscoveryServiceProperties();
dsProperties.setId(NEW_SERVICE_ID);
dsProperties.setName(NEW_SERVICE_NAME);
dsProperties.setDescription(NEW_SERVICE_DESCRIPTION);
dsProperties.setLink(null);
dsProperties.setPrerequisiteAnnotationTypes(null);
dsProperties.setResultingAnnotationTypes(null);
dsProperties.setSupportedObjectTypes(null);
dsProperties.setAssignedObjectTypes(null);
dsProperties.setAssignedObjectCandidates(null);
dsProperties.setEndpoint(JSONUtils.convert(dse, DiscoveryServiceEndpoint.class));
dsProperties.setParallelismCount(2);
registerDiscoveryService(dsProperties);
DiscoveryServiceJavaEndpoint dse2 = new DiscoveryServiceJavaEndpoint();
dse2.setClassName(UPDATED_SERVICE_CLASSNAME);
DiscoveryServiceProperties dsProperties2 = new DiscoveryServiceProperties();
dsProperties2.setId(NEW_SERVICE_ID);
dsProperties2.setName(NEW_SERVICE_NAME);
dsProperties2.setDescription(UPDATED_SERVICE_DESCRIPTION);
dsProperties2.setLink(null);
dsProperties.setPrerequisiteAnnotationTypes(null);
dsProperties.setResultingAnnotationTypes(null);
dsProperties.setSupportedObjectTypes(null);
dsProperties.setAssignedObjectTypes(null);
dsProperties.setAssignedObjectCandidates(null);
dsProperties2.setEndpoint(JSONUtils.convert(dse2, DiscoveryServiceEndpoint.class));
dsProperties2.setParallelismCount(2);
replaceDiscoveryService(dsProperties2);
unregisterDiscoveryService(NEW_SERVICE_ID);
}
}