use of org.pentaho.platform.api.repository2.unified.IUnifiedRepository in project pentaho-platform by pentaho.
the class ActionRunner method markContentAsGenerated.
private void markContentAsGenerated(IPostProcessingAction actionBean) {
IUnifiedRepository repo = PentahoSystem.get(IUnifiedRepository.class);
String lineageId = (String) params.get(ActionUtil.QUARTZ_LINEAGE_ID);
for (IContentItem contentItem : actionBean.getActionOutputContents()) {
RepositoryFile sourceFile = getRepositoryFileSafe(repo, contentItem.getPath());
// add metadata if we have access and we have file
if (sourceFile != null) {
Map<String, Serializable> metadata = repo.getFileMetadata(sourceFile.getId());
metadata.put(ActionUtil.QUARTZ_LINEAGE_ID, lineageId);
repo.setFileMetadata(sourceFile.getId(), metadata);
} else {
String fileName = getFSFileNameSafe(contentItem);
logger.warn(Messages.getInstance().getSkipRemovingOutputFile(fileName));
}
}
}
use of org.pentaho.platform.api.repository2.unified.IUnifiedRepository in project pentaho-platform by pentaho.
the class ActionRunnerTest method testCallWithStreamProvider.
@Test
public void testCallWithStreamProvider() throws Exception {
Map<String, Serializable> paramsMap = createMapWithUserLocale();
IAction actionBeanSpy = Mockito.spy(new TestAction());
IBackgroundExecutionStreamProvider mockStreamProvider = Mockito.mock(IBackgroundExecutionStreamProvider.class);
InputStream mockInputStream = Mockito.mock(InputStream.class);
OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
when(mockStreamProvider.getInputStream()).thenReturn(mockInputStream);
String mockOutputPath = "/someUser/someOutput";
when(mockStreamProvider.getOutputPath()).thenReturn(mockOutputPath);
when(mockStreamProvider.getOutputStream()).thenReturn(mockOutputStream);
ISecurityHelper mockSecurityHelper = Mockito.mock(ISecurityHelper.class);
SecurityHelper.setMockInstance(mockSecurityHelper);
when(mockSecurityHelper.runAsUser(Mockito.anyString(), Mockito.any())).thenReturn(mockOutputPath);
PowerMockito.mockStatic(PentahoSystem.class);
IUnifiedRepository mockRepository = Mockito.mock(IUnifiedRepository.class);
when(PentahoSystem.get(isA(IUnifiedRepository.class.getClass()), Mockito.any())).thenReturn(mockRepository);
IAuthorizationPolicy mockAuthorizationPolicy = Mockito.mock(IAuthorizationPolicy.class);
when(PentahoSystem.get(isA(IAuthorizationPolicy.class.getClass()), Mockito.any())).thenReturn(mockAuthorizationPolicy);
when(mockAuthorizationPolicy.isAllowed(SchedulerOutputPathResolver.SCHEDULER_ACTION_NAME)).thenReturn(true);
String repoId = "SOME_REPO_ID";
Map<String, Serializable> dummyMetaData = new HashMap<>();
dummyMetaData.put(RepositoryFile.SCHEDULABLE_KEY, true);
when(mockRepository.getFileMetadata(repoId)).thenReturn(dummyMetaData);
RepositoryFile mockRepoFile = Mockito.mock(RepositoryFile.class);
when(mockRepoFile.isFolder()).thenReturn(true);
when(mockRepoFile.getId()).thenReturn(repoId);
ActionRunner actionRunner = new ActionRunner(actionBeanSpy, "actionUser", paramsMap, mockStreamProvider);
actionRunner.call();
Mockito.verify(actionBeanSpy).execute();
}
use of org.pentaho.platform.api.repository2.unified.IUnifiedRepository in project pentaho-platform by pentaho.
the class ActionRunnerTest method testCallWithStreamProviderAndVarargsAction.
@Test
public void testCallWithStreamProviderAndVarargsAction() throws Exception {
Map<String, Serializable> paramsMap = createMapWithUserLocale();
TestVarArgsAction testVarArgsAction = new TestVarArgsAction();
IBackgroundExecutionStreamProvider mockStreamProvider = Mockito.mock(IBackgroundExecutionStreamProvider.class);
InputStream mockInputStream = Mockito.mock(InputStream.class);
OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
when(mockStreamProvider.getInputStream()).thenReturn(mockInputStream);
String mockOutputPath = "/someUser/someOutput";
when(mockStreamProvider.getOutputPath()).thenReturn(mockOutputPath);
when(mockStreamProvider.getOutputStream()).thenReturn(mockOutputStream);
ISecurityHelper mockSecurityHelper = Mockito.mock(ISecurityHelper.class);
SecurityHelper.setMockInstance(mockSecurityHelper);
when(mockSecurityHelper.runAsUser(Mockito.anyString(), Mockito.any())).thenReturn(mockOutputPath);
PowerMockito.mockStatic(PentahoSystem.class);
IUnifiedRepository mockRepository = Mockito.mock(IUnifiedRepository.class);
when(PentahoSystem.get(isA(IUnifiedRepository.class.getClass()), Mockito.any())).thenReturn(mockRepository);
IAuthorizationPolicy mockAuthorizationPolicy = Mockito.mock(IAuthorizationPolicy.class);
when(PentahoSystem.get(isA(IAuthorizationPolicy.class.getClass()), Mockito.any())).thenReturn(mockAuthorizationPolicy);
when(mockAuthorizationPolicy.isAllowed(SchedulerOutputPathResolver.SCHEDULER_ACTION_NAME)).thenReturn(true);
String repoId = "SOME_REPO_ID";
Map<String, Serializable> dummyMetaData = new HashMap<>();
dummyMetaData.put(RepositoryFile.SCHEDULABLE_KEY, true);
when(mockRepository.getFileMetadata(repoId)).thenReturn(dummyMetaData);
RepositoryFile mockRepoFile = Mockito.mock(RepositoryFile.class);
when(mockRepoFile.isFolder()).thenReturn(true);
when(mockRepoFile.getId()).thenReturn(repoId);
ActionRunner actionRunner = new ActionRunner(testVarArgsAction, "actionUser", paramsMap, mockStreamProvider);
actionRunner.call();
assertThat(testVarArgsAction.isExecuteWasCalled(), is(true));
}
use of org.pentaho.platform.api.repository2.unified.IUnifiedRepository in project pentaho-platform by pentaho.
the class LocaleImportHandlerTest method testValidImportIndexLocaleFile.
@Test
public void testValidImportIndexLocaleFile() {
String localeContent = "<index><name>My name</name><description>My descript</description><icon>samples.png</icon><visible>true</visible><display-type>icons</display-type></index>";
RepositoryFileImportBundle importBundle = createBundle(localeContent, "index.xml");
IUnifiedRepository unifiedRepository = initLocaleHandler(importBundle);
try {
importer.importFile(importBundle);
verify(unifiedRepository, times(1)).getFile(anyString());
verify(unifiedRepository, never()).getChildren(anyInt());
verify(unifiedRepository, times(1)).setLocalePropertiesForFile(any(RepositoryFile.class), anyString(), any(Properties.class));
} catch (PlatformImportException e) {
fail(e.getMessage());
}
}
use of org.pentaho.platform.api.repository2.unified.IUnifiedRepository in project pentaho-platform by pentaho.
the class LocaleImportHandlerTest method testImportNotLocaleFile.
@Test
public void testImportNotLocaleFile() {
String localeContent = "<index></display-type></index>";
RepositoryFileImportBundle importBundle = createBundle(localeContent, "test.xml");
IUnifiedRepository unifiedRepository = initLocaleHandler(importBundle);
try {
importer.importFile(importBundle);
verify(unifiedRepository, times(1)).getFile(anyString());
verify(unifiedRepository, times(1)).getChildren(anyInt());
verify(unifiedRepository, never()).setLocalePropertiesForFile(any(RepositoryFile.class), anyString(), any(Properties.class));
} catch (PlatformImportException e) {
fail(e.getMessage());
}
}
Aggregations