use of org.pentaho.metastore.api.exceptions.MetaStoreException in project pdi-dataservice-server-plugin by pentaho.
the class TransDataServletTest method testDoGetException.
@Test
public void testDoGetException() throws Exception {
when(factory.createBuilder(any(SQL.class))).thenThrow(new MetaStoreException("expected"));
headers.put(HEADER_SQL, TEST_SQL_QUERY);
servlet.service(request, response);
verify(response).sendError(HttpServletResponse.SC_BAD_REQUEST);
}
use of org.pentaho.metastore.api.exceptions.MetaStoreException in project pdi-dataservice-server-plugin by pentaho.
the class DataServiceMetaStoreUtilTest method testCheckConflict.
@Test
public void testCheckConflict() throws Exception {
final ServiceTrans published = mock(ServiceTrans.class);
when(published.getName()).thenReturn("PUBLISHED_SERVICE");
metaStoreUtil = new DataServiceMetaStoreUtil(metaStoreUtil) {
@Override
protected MetaStoreFactory<ServiceTrans> getServiceTransFactory(IMetaStore metaStore) {
return new MetaStoreFactory<ServiceTrans>(ServiceTrans.class, metaStore, NAMESPACE) {
@Override
public List<ServiceTrans> getElements() throws MetaStoreException {
return ImmutableList.of(published);
}
};
}
};
DataServiceMeta local = createDataService("OTHER_SERVICE", transMeta);
local.setStepname("OTHER_STEP");
metaStoreUtil.getDataServiceFactory(transMeta).saveElement(local);
// New data service with different properties
metaStoreUtil.checkConflict(dataService, null);
// Editing a data service with all new properties
metaStoreUtil.checkConflict(dataService, local.getName());
try {
// New data service with the same name as an local data service
dataService.setName(local.getName());
metaStoreUtil.checkConflict(dataService, null);
fail("Expected DataServiceAlreadyExistsException");
} catch (DataServiceAlreadyExistsException e) {
assertThat(e.getDataServiceMeta(), sameInstance(dataService));
}
// Editing a data service, no name change
metaStoreUtil.checkConflict(dataService, local.getName());
dataService = createDataService(DATA_SERVICE_NAME, transMeta);
metaStoreUtil.checkConflict(dataService, null);
try {
// New data service with conflicting output step
dataService.setStepname(local.getStepname());
metaStoreUtil.checkConflict(dataService, null);
fail("Expected DataServiceAlreadyExistsException");
} catch (DataServiceAlreadyExistsException e) {
assertThat(e.getDataServiceMeta(), sameInstance(dataService));
}
// Editing data service with same output step
metaStoreUtil.checkConflict(dataService, local.getName());
dataService = createDataService(DATA_SERVICE_NAME, transMeta);
metaStoreUtil.checkConflict(dataService, null);
dataService.setName(published.getName());
when(published.getReferences()).thenReturn(ImmutableList.<ServiceTrans.Reference>of());
metaStoreUtil.checkConflict(dataService, null);
ServiceTrans.Reference reference = mock(ServiceTrans.Reference.class);
when(reference.exists(repository)).thenReturn(false, true);
when(published.getReferences()).thenReturn(ImmutableList.of(reference));
metaStoreUtil.checkConflict(dataService, null);
try {
// New Data service with conflicting name in metastore
metaStoreUtil.checkConflict(dataService, null);
fail("Expected DataServiceAlreadyExistsException");
} catch (DataServiceAlreadyExistsException e) {
assertThat(e.getDataServiceMeta(), sameInstance(dataService));
}
try {
// Editing Data service with conflicting name in metastore
metaStoreUtil.checkConflict(dataService, local.getName());
fail("Expected DataServiceAlreadyExistsException");
} catch (DataServiceAlreadyExistsException e) {
assertThat(e.getDataServiceMeta(), sameInstance(dataService));
}
}
use of org.pentaho.metastore.api.exceptions.MetaStoreException in project pdi-dataservice-server-plugin by pentaho.
the class SynchronizationListenerTest method testNoPrompt.
@Test
public void testNoPrompt() throws Exception {
service.contentSafe(transMeta);
service.setPrompt(false);
verify(synchronizer).sync(same(transMeta), errorHandler.capture());
verify(delegate, never()).showPrompt(anyString(), anyString());
verify(delegate, never()).removeDataService(dataServiceMeta);
verify(delegate, never()).suggestEdit(same(dataServiceMeta), anyString(), anyString());
MetaStoreException metaStoreException = new MetaStoreException();
errorHandler.getValue().apply(metaStoreException);
verify(logChannel).logError(anyString(), same(metaStoreException));
}
use of org.pentaho.metastore.api.exceptions.MetaStoreException in project pdi-dataservice-server-plugin by pentaho.
the class SynchronizationListenerTest method testContentSafe.
@Test
public void testContentSafe() throws Exception {
service.contentSafe(transMeta);
verify(synchronizer).sync(same(transMeta), errorHandler.capture());
UndefinedDataServiceException undefinedException = new UndefinedDataServiceException(dataServiceMeta);
when(delegate.showPrompt(anyString(), anyString())).thenReturn(false, true);
errorHandler.getValue().apply(undefinedException);
verify(delegate, never()).removeDataService(dataServiceMeta, false);
errorHandler.getValue().apply(undefinedException);
verify(delegate).removeDataService(dataServiceMeta);
verify(logChannel, times(2)).logError(anyString(), same(undefinedException));
DataServiceAlreadyExistsException conflictException = new DataServiceAlreadyExistsException(dataServiceMeta);
errorHandler.getValue().apply(conflictException);
verify(delegate).suggestEdit(same(dataServiceMeta), anyString(), anyString());
verify(logChannel).logError(anyString(), same(conflictException));
MetaStoreException metaStoreException = new MetaStoreException();
errorHandler.getValue().apply(metaStoreException);
verify(logChannel).logError(anyString(), same(metaStoreException));
}
use of org.pentaho.metastore.api.exceptions.MetaStoreException in project pentaho-kettle by pentaho.
the class NamedClusterEmbedManager method clear.
/**
* Clear the embedded metastore of any named clusters
*/
public void clear() {
NamedClusterServiceOsgi ncso = meta.getNamedClusterServiceOsgi();
if (ncso != null) {
// Don't kill the embedded if we don't have the service to rebuild
addedAllClusters = false;
addedAnyClusters = false;
// saved.
if (embeddedMetaStoreFactory != null) {
try {
List<NamedClusterOsgi> list = embeddedMetaStoreFactory.getElements();
for (NamedClusterOsgi nc : list) {
namedClusterPool.put(nc.getName(), nc);
embeddedMetaStoreFactory.deleteElement(nc.getName());
}
} catch (MetaStoreException e) {
logMetaStoreException(e);
}
}
}
}
Aggregations