use of org.pentaho.metastore.persist.MetaStoreFactory 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.persist.MetaStoreFactory in project pdi-dataservice-server-plugin by pentaho.
the class DataServiceReferenceSynchronizerTest method before.
@Before
public void before() {
ObjectId transId = new StringObjectId("transId");
when(transMeta.getMetaStore()).thenReturn(externalMetastore);
when(transMeta.getEmbeddedMetaStore()).thenReturn(embeddedMetastore);
when(transMeta.getObjectId()).thenReturn(transId);
when(transMeta.getRepository()).thenReturn(repository);
when(repository.getRepositoryMeta()).thenReturn(repositoryMeta);
when(repositoryMeta.getRepositoryCapabilities()).thenReturn(mock(RepositoryCapabilities.class));
RepositoryDirectoryInterface root = mock(RepositoryDirectoryInterface.class);
RepositoryDirectoryInterface dir = new RepositoryDirectory(root, "location");
when(root.findDirectory(eq("/"))).thenReturn(dir);
try {
when(repository.getTransformationID(eq("location"), eq(dir))).thenReturn(transId);
when(repository.loadRepositoryDirectoryTree()).thenReturn(root);
} catch (KettleException ke) {
// Noop
}
when(context.getPushDownFactories()).thenReturn(Collections.emptyList());
synchronizer = new DataServiceReferenceSynchronizer(context) {
protected <T> MetaStoreFactory<T> getMetastoreFactory(IMetaStore metaStore, Class<T> clazz) {
return externalMetaStoreFactory;
}
protected MetaStoreFactory<DataServiceMeta> getEmbeddedMetaStoreFactory(TransMeta meta) {
return embeddedMetaStoreFactory;
}
};
}
use of org.pentaho.metastore.persist.MetaStoreFactory in project pentaho-kettle by pentaho.
the class ConnectionManagerTest method testEncryptedField.
@Test
public void testEncryptedField() throws Exception {
addOne();
TestConnectionDetails testConnectionDetails1 = (TestConnectionDetails) connectionManager.getConnectionDetails(TestConnectionProvider.SCHEME, CONNECTION_NAME);
Assert.assertEquals(PASSWORD, testConnectionDetails1.getPassword());
Assert.assertEquals(PASSWORD2, testConnectionDetails1.getPassword1());
MetaStoreFactory<TestConnectionDetails> metaStoreFactory = new MetaStoreFactory<>(TestConnectionDetails.class, memoryMetaStore, NAMESPACE);
TestConnectionDetails testConnectionDetails = metaStoreFactory.loadElement(CONNECTION_NAME);
Assert.assertTrue(testConnectionDetails.getPassword().startsWith("Encrypted "));
Assert.assertTrue(testConnectionDetails.getPassword1().startsWith("Encrypted "));
}
Aggregations