Esempio n. 1
0
  @Test
  public void test() throws Exception {
    DocumentModel doc = new DocumentModelImpl("/", "doc", "ComplexDoc");

    List<Map<String, Object>> vignettes = new ArrayList<Map<String, Object>>();
    Map<String, Object> vignette = new HashMap<String, Object>();
    vignette.put("width", Long.valueOf(0));
    vignette.put("height", Long.valueOf(0));
    Blob blob1 = Blobs.createBlob("foo1 bar1");
    blob1.setFilename("file1.txt");
    vignette.put("content", blob1);
    vignettes.add(vignette);

    vignette = new HashMap<String, Object>();
    vignette.put("width", Long.valueOf(0));
    vignette.put("height", Long.valueOf(0));
    Blob blob2 = Blobs.createBlob("foo2 bar2");
    blob2.setFilename("file2.txt");
    vignette.put("content", blob2);
    vignettes.add(vignette);

    Map<String, Object> attachedFile = new HashMap<String, Object>();
    attachedFile.put("name", "some name");
    attachedFile.put("vignettes", vignettes);
    doc.setPropertyValue("cmpf:attachedFile", (Serializable) attachedFile);

    Blob blob3 = Blobs.createBlob("foo3 bar3");
    doc.setProperty("file", "content", blob3);

    BlobsExtractor extractor = new BlobsExtractor();
    List<Blob> blobs = extractor.getBlobs(doc);
    assertEquals(3, blobs.size());
    assertTrue(blobs.contains(blob1));
    assertTrue(blobs.contains(blob2));
    assertTrue(blobs.contains(blob3));
  }
Esempio n. 2
0
  @Test
  public void testWithRepositoryConfiguration() throws Exception {
    DocumentModel doc = new DocumentModelImpl("/", "doc", "ComplexDoc");

    List<Map<String, Object>> vignettes = new ArrayList<Map<String, Object>>();
    Map<String, Object> vignette = new HashMap<String, Object>();
    vignette.put("width", Long.valueOf(0));
    vignette.put("height", Long.valueOf(0));
    Blob blob1 = Blobs.createBlob("foo1 bar1");
    blob1.setFilename("file1.txt");
    vignette.put("content", blob1);
    vignettes.add(vignette);

    vignette = new HashMap<String, Object>();
    vignette.put("width", Long.valueOf(0));
    vignette.put("height", Long.valueOf(0));
    Blob blob2 = Blobs.createBlob("foo2 bar2");
    blob2.setFilename("file2.txt");
    vignette.put("content", blob2);
    vignettes.add(vignette);

    Map<String, Object> attachedFile = new HashMap<String, Object>();
    attachedFile.put("name", "some name");
    attachedFile.put("vignettes", vignettes);
    doc.setPropertyValue("cmpf:attachedFile", (Serializable) attachedFile);

    Blob blob3 = Blobs.createBlob("foo3 bar3");
    doc.setProperty("file", "content", blob3);

    BlobsExtractor extractor = new BlobsExtractor();
    List<Blob> blobs;

    /*
     * First configuration : only a simple property <index> <field>dc:title</field> </index>
     */
    extractor.setExtractorProperties(null, null, false);
    blobs = extractor.getBlobs(doc);
    assertEquals(0, blobs.size());

    /*
     * Second configuration : only blobs property <index> <fieldType>blob</fieldType> </index>
     */
    extractor.setExtractorProperties(null, null, true);
    blobs = extractor.getBlobs(doc);
    assertEquals(3, blobs.size());
    assertTrue(blobs.contains(blob1));
    assertTrue(blobs.contains(blob2));
    assertTrue(blobs.contains(blob3));

    /*
     * Third configuration : only a blob property whose schema has a prefix <index>
     * <field>cmpf:attachedFile/vignettes//content/data</field> </index>
     */
    Set<String> pathProps = new HashSet<String>();
    pathProps.add("cmpf:attachedFile/vignettes/*/content/data");
    extractor.setExtractorProperties(pathProps, null, false);
    blobs = extractor.getBlobs(doc);
    assertEquals(2, blobs.size());
    assertTrue(blobs.contains(blob1));
    assertTrue(blobs.contains(blob2));

    /*
     * Fourth configuration : only the blob of file whose schema doesn't have a prefix <index>
     * <field>content/data</field> </index>
     */
    pathProps = new HashSet<String>();
    pathProps.add("content/data");
    extractor.setExtractorProperties(pathProps, null, false);
    blobs = extractor.getBlobs(doc);
    assertEquals(1, blobs.size());
    assertTrue(blobs.contains(blob3));

    /*
     * Fifth configuration : all blobs minus some blobs <index> <fieldType>blob</fieldType>
     * <excludeField>content/data</excludeField> </index>
     */
    pathProps = new HashSet<String>();
    pathProps.add("content/data");
    extractor.setExtractorProperties(null, pathProps, true);
    blobs = extractor.getBlobs(doc);
    assertEquals(2, blobs.size());
    assertTrue(blobs.contains(blob2));
  }