Search in sources :

Example 36 with RepositoryFileTree

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);
}
Also used : Marshaller(javax.xml.bind.Marshaller) ArrayList(java.util.ArrayList) JAXBContext(javax.xml.bind.JAXBContext) IRepositoryVersionManager(org.pentaho.platform.api.repository2.unified.IRepositoryVersionManager) RepositoryFileTree(org.pentaho.platform.api.repository2.unified.RepositoryFileTree) StringWriter(java.io.StringWriter) StringReader(java.io.StringReader) RepositoryFile(org.pentaho.platform.api.repository2.unified.RepositoryFile) Unmarshaller(javax.xml.bind.Unmarshaller) RepositoryFileAcl(org.pentaho.platform.api.repository2.unified.RepositoryFileAcl) IUnifiedRepository(org.pentaho.platform.api.repository2.unified.IUnifiedRepository) Test(org.junit.Test)

Example 37 with RepositoryFileTree

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());
}
Also used : ArrayList(java.util.ArrayList) RepositoryFile(org.pentaho.platform.api.repository2.unified.RepositoryFile) RepositoryFileTree(org.pentaho.platform.api.repository2.unified.RepositoryFileTree) Test(org.junit.Test)

Aggregations

RepositoryFileTree (org.pentaho.platform.api.repository2.unified.RepositoryFileTree)35 RepositoryFile (org.pentaho.platform.api.repository2.unified.RepositoryFile)25 Test (org.junit.Test)14 RepositoryRequest (org.pentaho.platform.api.repository2.unified.RepositoryRequest)13 ArrayList (java.util.ArrayList)10 IUnifiedRepository (org.pentaho.platform.api.repository2.unified.IUnifiedRepository)7 Matchers.anyString (org.mockito.Matchers.anyString)6 StringObjectId (org.pentaho.di.repository.StringObjectId)6 RepositoryObjectType (org.pentaho.di.repository.RepositoryObjectType)5 KettleException (org.pentaho.di.core.exception.KettleException)4 ObjectId (org.pentaho.di.repository.ObjectId)4 RepositoryDirectoryInterface (org.pentaho.di.repository.RepositoryDirectoryInterface)4 ITenant (org.pentaho.platform.api.mt.ITenant)4 ByteArrayInputStream (java.io.ByteArrayInputStream)3 File (java.io.File)3 Serializable (java.io.Serializable)3 Date (java.util.Date)3 KettleExtensionPoint (org.pentaho.di.core.extension.KettleExtensionPoint)3 RepositoryDirectory (org.pentaho.di.repository.RepositoryDirectory)3 RepositoryElementMetaInterface (org.pentaho.di.repository.RepositoryElementMetaInterface)3