use of org.pentaho.platform.api.repository2.unified.RepositoryFileTree in project pentaho-platform by pentaho.
the class RepositoryFileTreeAdapterTest method testBIServer7777.
/**
* Assert empty list in RepositoryFileTree#children survives full jaxb serialization roundtrip
*/
@Test
public void testBIServer7777() throws Exception {
IUnifiedRepository unifiedRepository = mock(IUnifiedRepository.class);
PentahoSystem.registerObject(unifiedRepository);
RepositoryFileAcl acl = new RepositoryFileAcl.Builder("admin").build();
when(unifiedRepository.getAcl(anyString())).thenReturn(acl);
IRepositoryVersionManager mockRepositoryVersionManager = mock(IRepositoryVersionManager.class);
when(mockRepositoryVersionManager.isVersioningEnabled(anyString())).thenReturn(true);
when(mockRepositoryVersionManager.isVersionCommentEnabled(anyString())).thenReturn(false);
JcrRepositoryFileUtils.setRepositoryVersionManager(mockRepositoryVersionManager);
// file tree with empty children
RepositoryFile empty = new RepositoryFile.Builder("empty").build();
RepositoryFileTree emptyDir = new RepositoryFileTree(empty, Collections.<RepositoryFileTree>emptyList());
RepositoryFile root = new RepositoryFile.Builder("rootDir").build();
ArrayList<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>(1);
children.add(emptyDir);
RepositoryFileTree rootDir = new RepositoryFileTree(root, children);
// to DTO
RepositoryFileTreeAdapter adapter = new RepositoryFileTreeAdapter();
RepositoryFileTreeDto dtoThere = adapter.marshal(rootDir);
assertNotNull(dtoThere.getChildren().get(0).getChildren());
// serialize
final JAXBContext jaxbContext = JAXBContext.newInstance(RepositoryFileTreeDto.class);
Marshaller marshaller = jaxbContext.createMarshaller();
StringWriter sw = new StringWriter();
marshaller.marshal(dtoThere, sw);
// and bring it back
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StringReader sr = new StringReader(sw.toString());
RepositoryFileTreeDto dtoBackAgain = (RepositoryFileTreeDto) unmarshaller.unmarshal(sr);
assertNotNull(dtoBackAgain.getChildren().get(0).getChildren());
// unmarshall
RepositoryFileTree rootDir2 = adapter.unmarshal(dtoBackAgain);
assertNotNull(rootDir2.getChildren().get(0).getChildren());
assertEquals(rootDir, rootDir2);
}
use of org.pentaho.platform.api.repository2.unified.RepositoryFileTree in project pentaho-platform by pentaho.
the class RepositoryFileTreeAdapterTest method testWhenChildrenIsDeleted.
@Test
public void testWhenChildrenIsDeleted() throws Exception {
// mock RepositoryFile to return null
RepositoryFile mockFile = mock(RepositoryFileProxy.class);
when(mockFile.isHidden()).thenReturn(null);
// create tree with the mockFile
RepositoryFileTree nullValueDir = new RepositoryFileTree(mockFile, Collections.<RepositoryFileTree>emptyList());
RepositoryFile root = new RepositoryFile.Builder("rootDir").build();
ArrayList<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>(1);
children.add(nullValueDir);
RepositoryFileTree rootDir = new RepositoryFileTree(root, children);
// to DTO
RepositoryFileTreeAdapter adapter = new RepositoryFileTreeAdapter();
RepositoryFileTreeDto dtoThere = adapter.marshal(rootDir);
// as isHidden() returns null, it's expected that null was returned, so root has no children
assertTrue(dtoThere.getChildren().isEmpty());
}
Aggregations