Package org.fcrepo.server.storage.types

Examples of org.fcrepo.server.storage.types.DigitalObject


    public void testIndexAndFindByDCIdentifier() throws Exception {
        init(maxResultsDefault, maxSecondsPerSessionDefault, true);

        // add one object with DC to index
        String pid1 = "test:1";
        DigitalObject obj1 = getTestObject(pid1, pid1);
        String dcContent = "<dc:identifier>" + pid1 + "</dc:identifier>";
        addXDatastream(obj1, "DC", getDC(dcContent));

        setDates(obj1, new Date());
        m_repo.putObject(obj1);
View Full Code Here


        doSimpleTest(SERVICE_DEFINITION_3_0);
    }

    @Test
    public void testTwoInlineDatastreams() {
        DigitalObject obj = createTestObject(FEDORA_OBJECT_3_0);

        final String dsID1 = "DS1";
        DatastreamXMLMetadata ds1 = createXDatastream(dsID1);

        final String dsID2 = "DS2";
        DatastreamXMLMetadata ds2 = createXDatastream(dsID2);

        obj.addDatastreamVersion(ds1, true);
        obj.addDatastreamVersion(ds2, true);

        DigitalObject result = doDeserializeOrFail(obj);
        int numDatastreams = 0;
        Iterator<String> iter = result.datastreamIdIterator();
        while (iter.hasNext()) {
            iter.next();
            numDatastreams++;
        }

        /* 3 datastreams: ds1, ds2, rels-ext */
        assertEquals(3, numDatastreams);
        assertTrue(result.datastreams(dsID1).iterator().hasNext());
        assertTrue(result.datastreams(dsID2).iterator().hasNext());
    }
View Full Code Here

     * @throws Exception
     */
    @Test
    public void testInlineXMLCopyIntegrity() throws Exception {

        DigitalObject original = createTestObject(FEDORA_OBJECT_3_0);
        final String dsID1 = "DS1";

        /* Populate the object with a test datastream and serialize */
        DatastreamXMLMetadata ds1 = createXDatastream(dsID1);
        original.addDatastreamVersion(ds1, true);

        DigitalObject copy = translatedCopy(original);
        DigitalObject copyOfCopy = translatedCopy(copy);

        DatastreamXMLMetadata ds1copy =
                (DatastreamXMLMetadata) copy.datastreams(dsID1).iterator()
                        .next();
        DatastreamXMLMetadata ds1copyOfCopy =
                (DatastreamXMLMetadata) copyOfCopy.datastreams(dsID1)
                        .iterator().next();

        assertEquals("Length of XML datastream copies is not deterministic!",
                     ds1copy.xmlContent.length,
                     ds1copyOfCopy.xmlContent.length);
View Full Code Here

        record.id = "AUDREC1";
        record.justification = "malice";
        record.processType = "Fedora API-M";
        record.responsibility = "fedoraAdmin";

        DigitalObject original = createTestObject(FEDORA_OBJECT_3_0);
        original.getAuditRecords().add(record);

        // serialize to file
        File temp = File.createTempFile("audit", ".xml");
        OutputStream out = new FileOutputStream(temp);
        m_serializer.serialize(original, out, "utf-8", DOTranslationUtility.SERIALIZE_EXPORT_PUBLIC);
        out.close();

        // deserialize
        DigitalObject candidate = new BasicDigitalObject();
        InputStream in = new FileInputStream(temp);
        m_deserializer.deserialize(in, candidate, "utf-8", DOTranslationUtility.DESERIALIZE_INSTANCE);
        List<AuditRecord> a1 = original.getAuditRecords();
        List<AuditRecord> a2 = candidate.getAuditRecords();
        assertEquals(a1.size(), a2.size());
        for (int i = 0; i < a1.size(); i++) {
            assertEquals(a1.get(i).action, a2.get(i).action);
            assertEquals(a1.get(i).componentID, a2.get(i).componentID);
            assertEquals(a1.get(i).date, a2.get(i).date);
View Full Code Here

     * </p>
     */
    @Test
    public void testNullObjectProperties() {
        final String EXT_PROP = "http://example.org/test";
        DigitalObject input = createTestObject(FEDORA_OBJECT_3_0);
        input.setCreateDate(null);
        input.setLastModDate(null);
        input.setLabel(null);
        input.setOwnerId(null);
        input.setState(null);
        input.setExtProperty(EXT_PROP, null);

        DigitalObject obj = doDeserializeOrFail(input);

        assertNull("Create date should be null", obj.getCreateDate());
        assertNull("LastMod date should be null", obj.getLastModDate());
        assertEquals("Null label should be interpreted as empty string", "", obj.getLabel());
        assertEquals("Null ownerid should be interpreted as empty string", "", obj.getOwnerId());
        assertEquals("Null state should be interpreted as active", "A", obj.getState());
        assertNull("Ext property should be null", obj.getExtProperty(EXT_PROP));
    }
View Full Code Here

     */
    @Test
    public void testEmptyObjectProperties() {
        final String EXT_PROP_SUPPORTED = "http://example.org/ext-supported";
        final String EXT_PROP = "http://example.org/test";
        DigitalObject input = createTestObject(FEDORA_OBJECT_3_0);
        input.setLabel("");
        input.setOwnerId("");
        //input.setState("");
        input.setExtProperty(EXT_PROP_SUPPORTED, "true");
        input.setExtProperty(EXT_PROP, "");
        DigitalObject obj = doDeserializeOrFail(input);

        assertEquals("Empty label should remain empty", "", obj.getLabel());
        assertEquals("Empty Ownerid should remain empty", "", obj.getOwnerId());
        assertEquals("Empty State should be interpreted as active", "A", obj.getState());

        /* Some formats (METS) don't support ext. properties */
        if ("true".equals(obj.getExtProperty(EXT_PROP_SUPPORTED))) {
            assertEquals("Empty Ext property should remain empty", "", obj.getExtProperty(EXT_PROP));
        }
    }
View Full Code Here

    }

    @Test
    public void testFedoraLocalServerSubstitution() {

        DigitalObject o = createTestObject(SERVICE_DEPLOYMENT_3_0);
        DatastreamXMLMetadata ds1 = createXDatastream("WSDL");
        ds1.xmlContent = "<test>http://local.fedora.server/</test>".getBytes();

        o.addDatastreamVersion(ds1, false);

        DigitalObject processed = doDeserializeOrFail(o);

        DatastreamXMLMetadata ds1proc =
                (DatastreamXMLMetadata) processed.datastreams("WSDL")
                        .iterator().next();

        Iterator<String> ids = processed.datastreamIdIterator();

        String content = new String(ds1proc.xmlContent);
        assertFalse(content.contains("local.fedora.server"));
        assertTrue(content.contains("http"));
    }
View Full Code Here

     * @throws StreamIOException
     */
    private DigitalObject translatedCopy(DigitalObject original)
            throws UnsupportedEncodingException, ObjectIntegrityException,
            StreamIOException {
        DigitalObject copy = new BasicDigitalObject();
        ByteArrayOutputStream out = new ByteArrayOutputStream();

        m_serializer.serialize(original,
                               out,
                               "UTF-8",
View Full Code Here

    //---
    // Instance helpers
    //---

    protected void doSimpleTest(URIReference... models) {
        DigitalObject input = createTestObject(models);
        DigitalObject obj = doDeserializeOrFail(input);

        for (URIReference model : models) {
            assertTrue("Did not detect that object had model " + model, obj
                    .hasContentModel(model));
        }
        assertEquals(TEST_PID, obj.getPid());
    }
View Full Code Here

        }
        assertEquals(TEST_PID, obj.getPid());
    }

    protected DigitalObject doDeserializeOrFail(DigitalObject obj) {
        DigitalObject result = null;
        try {
            result = doDeserialize(obj);
        } catch (ObjectIntegrityException e) {
            e.printStackTrace();
            fail("Deserializer threw ObjectIntegrityException");
View Full Code Here

TOP

Related Classes of org.fcrepo.server.storage.types.DigitalObject

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.