/** * Licensed to The Apereo Foundation under one or more contributor license * agreements. See the NOTICE file distributed with this work for additional * information regarding copyright ownership. * * * The Apereo Foundation licenses this file to you under the Educational * Community License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License * at: * * http://opensource.org/licenses/ecl2.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * */ package org.opencastproject.schema; import static org.junit.Assert.assertEquals; import static org.opencastproject.schema.OcDublinCoreUtil.encodeCreated; import static org.opencastproject.schema.OcDublinCoreUtil.encodeDate; import static org.opencastproject.schema.OcDublinCoreUtil.encodeDateAccepted; import static org.opencastproject.schema.OcDublinCoreUtil.encodeDateCopyrighted; import static org.opencastproject.schema.OcDublinCoreUtil.encodeDateSubmitted; import static org.opencastproject.schema.test.TestUtil.randomDc; import static org.opencastproject.util.ReflectionUtil.run; import org.opencastproject.metadata.dublincore.DublinCore; import org.opencastproject.metadata.dublincore.DublinCoreCatalog; import org.opencastproject.util.data.Option; import org.junit.Test; import java.util.Date; public class OcDublinCoreUtilTest { @Test public void testToCatalog() throws Exception { final OcDublinCore source = randomDc(); final DublinCoreCatalog target = OcDublinCoreUtil.toCatalog(source); run(OcDublinCore.class, new OcDublinCore() { @Override public Option<String> getAbstract() { assertEquals("abstract copy", source.getAbstract().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ABSTRACT)); return null; } @Override public Option<String> getAccessRights() { assertEquals("accessRights copy", source.getAccessRights().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ACCESS_RIGHTS)); return null; } @Override public Option<String> getAccrualMethod() { assertEquals("accrualMethod copy", source.getAccrualMethod().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ACCRUAL_METHOD)); return null; } @Override public Option<String> getAccrualPeriodicity() { assertEquals("accrualPeriodicity copy", source.getAccrualPeriodicity().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ACCRUAL_PERIODICITY)); return null; } @Override public Option<String> getAccrualPolicy() { assertEquals("accrualPolicy copy", source.getAccrualPolicy().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ACCRUAL_POLICY)); return null; } @Override public Option<String> getAlternative() { assertEquals("alternative copy", source.getAlternative().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ALTERNATIVE)); return null; } @Override public Option<String> getAudience() { assertEquals("audience copy", source.getAudience().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_AUDIENCE)); return null; } @Override public Option<String> getAvailable() { assertEquals("available copy", source.getAvailable().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_AVAILABLE)); return null; } @Override public Option<String> getBibliographicCitation() { assertEquals("bibliographicCitation copy", source.getBibliographicCitation().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_BIBLIOGRAPHIC_CITATION)); return null; } @Override public Option<String> getConformsTo() { assertEquals("conformsTo copy", source.getConformsTo().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_CONFORMS_TO)); return null; } @Override public Option<String> getContributor() { assertEquals("contributor copy", source.getContributor().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_CONTRIBUTOR)); return null; } @Override public Option<String> getCoverage() { assertEquals("coverage copy", source.getCoverage().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_COVERAGE)); return null; } @Override public Date getCreated() { assertEquals("created copy", encodeCreated(source.getCreated()), target.getFirstVal(DublinCore.PROPERTY_CREATED)); return null; } @Override public Option<String> getCreator() { assertEquals("creator copy", source.getCreator().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_CREATOR)); return null; } @Override public Option<Date> getDate() { assertEquals("date copy", source.getDate().map(encodeDate).getOrElseNull(), target.getFirstVal(DublinCore.PROPERTY_DATE)); return null; } @Override public Option<Date> getDateAccepted() { assertEquals("dateAccepted copy", source.getDateAccepted().map(encodeDateAccepted).getOrElseNull(), target.getFirstVal(DublinCore.PROPERTY_DATE_ACCEPTED)); return null; } @Override public Option<Date> getDateCopyrighted() { assertEquals("dateCopyrighted copy", source.getDateCopyrighted().map(encodeDateCopyrighted).getOrElseNull(), target.getFirstVal(DublinCore.PROPERTY_DATE_COPYRIGHTED)); return null; } @Override public Option<Date> getDateSubmitted() { assertEquals("dateSubmitted copy", source.getDateSubmitted().map(encodeDateSubmitted).getOrElseNull(), target.getFirstVal(DublinCore.PROPERTY_DATE_SUBMITTED)); return null; } @Override public Option<String> getDescription() { assertEquals("description copy", source.getDescription().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_DESCRIPTION)); return null; } @Override public Option<String> getEducationLevel() { assertEquals("educationLevel copy", source.getEducationLevel().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_EDUCATION_LEVEL)); return null; } @Override public Option<Long> getExtent() { assertEquals("extent copy", source.getExtent().getOrElseNull(), (Long) Long.parseLong(target.getFirst(DublinCore.PROPERTY_EXTENT))); return null; } @Override public Option<String> getFormat() { assertEquals("format copy", source.getFormat().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_FORMAT)); return null; } @Override public Option<String> getHasFormat() { assertEquals("hasFormat copy", source.getHasFormat().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_HAS_FORMAT)); return null; } @Override public Option<String> getHasPart() { assertEquals("hasPart copy", source.getHasPart().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_HAS_PART)); return null; } @Override public Option<String> getHasVersion() { assertEquals("hasVersion copy", source.getHasVersion().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_HAS_VERSION)); return null; } @Override public Option<String> getIdentifier() { assertEquals("identifier copy", source.getIdentifier().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IDENTIFIER)); return null; } @Override public Option<String> getInstructionalMethod() { assertEquals("instructionalMethod copy", source.getInstructionalMethod().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_INSTRUCTIONAL_METHOD)); return null; } @Override public Option<String> getIsFormatOf() { assertEquals("isFormatOf copy", source.getIsFormatOf().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_FORMAT_OF)); return null; } @Override public Option<String> getIsPartOf() { assertEquals("isPartOf copy", source.getIsPartOf().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_PART_OF)); return null; } @Override public Option<String> getIsReferencedBy() { assertEquals("isReferencedBy copy", source.getIsReferencedBy().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_REFERENCED_BY)); return null; } @Override public Option<String> getIsReplacedBy() { assertEquals("isReplacedBy copy", source.getIsReplacedBy().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_REPLACED_BY)); return null; } @Override public Option<String> getIsRequiredBy() { assertEquals("isRequiredBy copy", source.getIsRequiredBy().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_REQUIRED_BY)); return null; } @Override public Option<String> getIssued() { assertEquals("issued copy", source.getIssued().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_ISSUED)); return null; } @Override public Option<String> getIsVersionOf() { assertEquals("isVersionOf copy", source.getIsVersionOf().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_IS_VERSION_OF)); return null; } @Override public Option<String> getLanguage() { assertEquals("language copy", source.getLanguage().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_LANGUAGE)); return null; } @Override public Option<String> getLicense() { assertEquals("license copy", source.getLicense().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_LICENSE)); return null; } @Override public Option<String> getMediator() { assertEquals("mediator copy", source.getMediator().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_MEDIATOR)); return null; } @Override public Option<String> getMedium() { assertEquals("medium copy", source.getMedium().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_MEDIUM)); return null; } @Override public Option<String> getModified() { assertEquals("modified copy", source.getModified().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_MODIFIED)); return null; } @Override public Option<String> getProvenance() { assertEquals("provenance copy", source.getProvenance().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_PROVENANCE)); return null; } @Override public Option<String> getPublisher() { assertEquals("publisher copy", source.getPublisher().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_PUBLISHER)); return null; } @Override public Option<String> getReferences() { assertEquals("references copy", source.getReferences().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_REFERENCES)); return null; } @Override public Option<String> getRelation() { assertEquals("relation copy", source.getRelation().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_RELATION)); return null; } @Override public Option<String> getReplaces() { assertEquals("replaces copy", source.getReplaces().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_REPLACES)); return null; } @Override public Option<String> getRequires() { assertEquals("requires copy", source.getRequires().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_REQUIRES)); return null; } @Override public Option<String> getRights() { assertEquals("rights copy", source.getRights().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_RIGHTS)); return null; } @Override public Option<String> getRightsHolder() { assertEquals("rightsHolder copy", source.getRightsHolder().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_RIGHTS_HOLDER)); return null; } @Override public Option<String> getSource() { assertEquals("source copy", source.getSource().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_SOURCE)); return null; } @Override public Option<String> getSpatial() { assertEquals("spatial copy", source.getSpatial().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_SPATIAL)); return null; } @Override public Option<String> getSubject() { assertEquals("subject copy", source.getSubject().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_SUBJECT)); return null; } @Override public Option<String> getTableOfContents() { assertEquals("tableOfContents copy", source.getTableOfContents().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_TABLE_OF_CONTENTS)); return null; } @Override public Option<String> getTemporal() { assertEquals("temporal copy", source.getTemporal().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_TEMPORAL)); return null; } @Override public String getTitle() { assertEquals("title copy", source.getTitle(), target.getFirst(DublinCore.PROPERTY_TITLE)); return null; } @Override public Option<String> getType() { assertEquals("type copy", source.getType().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_TYPE)); return null; } @Override public Option<String> getValid() { assertEquals("valid copy", source.getValid().getOrElseNull(), target.getFirst(DublinCore.PROPERTY_VALID)); return null; } }); } @Test public void testToJaxb() throws Exception { final OcDublinCore source = randomDc(); final JaxbOcDublinCore target = OcDublinCoreUtil.toJaxb(source); run(OcDublinCore.class, new OcDublinCore() { @Override public Option<String> getAbstract() { assertEquals("abstract copy", source.getAbstract().getOrElseNull(), target.abstrakt); return null; } @Override public Option<String> getAccessRights() { assertEquals("accessRights copy", source.getAccessRights().getOrElseNull(), target.accessRights); return null; } @Override public Option<String> getAccrualMethod() { assertEquals("accrualMethod copy", source.getAccrualMethod().getOrElseNull(), target.accrualMethod); return null; } @Override public Option<String> getAccrualPeriodicity() { assertEquals("accrualPeriodicity copy", source.getAccrualPeriodicity().getOrElseNull(), target.accrualPeriodicity); return null; } @Override public Option<String> getAccrualPolicy() { assertEquals("accrualPolicy copy", source.getAccrualPolicy().getOrElseNull(), target.accrualPolicy); return null; } @Override public Option<String> getAlternative() { assertEquals("alternative copy", source.getAlternative().getOrElseNull(), target.alternative); return null; } @Override public Option<String> getAudience() { assertEquals("audience copy", source.getAudience().getOrElseNull(), target.audience); return null; } @Override public Option<String> getAvailable() { assertEquals("available copy", source.getAvailable().getOrElseNull(), target.available); return null; } @Override public Option<String> getBibliographicCitation() { assertEquals("bibliographicCitation copy", source.getBibliographicCitation().getOrElseNull(), target.bibliographicCitation); return null; } @Override public Option<String> getConformsTo() { assertEquals("conformsTo copy", source.getConformsTo().getOrElseNull(), target.conformsTo); return null; } @Override public Option<String> getContributor() { assertEquals("contributor copy", source.getContributor().getOrElseNull(), target.contributor); return null; } @Override public Option<String> getCoverage() { assertEquals("coverage copy", source.getCoverage().getOrElseNull(), target.coverage); return null; } @Override public Date getCreated() { assertEquals("created copy", source.getCreated(), target.created); return null; } @Override public Option<String> getCreator() { assertEquals("creator copy", source.getCreator().getOrElseNull(), target.creator); return null; } @Override public Option<Date> getDate() { assertEquals("date copy", source.getDate().getOrElseNull(), target.date); return null; } @Override public Option<Date> getDateAccepted() { assertEquals("dateAccepted copy", source.getDateAccepted().getOrElseNull(), target.dateAccepted); return null; } @Override public Option<Date> getDateCopyrighted() { assertEquals("dateCopyrighted copy", source.getDateCopyrighted().getOrElseNull(), target.dateCopyrighted); return null; } @Override public Option<Date> getDateSubmitted() { assertEquals("dateSubmitted copy", source.getDateSubmitted().getOrElseNull(), target.dateSubmitted); return null; } @Override public Option<String> getDescription() { assertEquals("description copy", source.getDescription().getOrElseNull(), target.description); return null; } @Override public Option<String> getEducationLevel() { assertEquals("educationLevel copy", source.getEducationLevel().getOrElseNull(), target.educationLevel); return null; } @Override public Option<Long> getExtent() { assertEquals("extent copy", source.getExtent().getOrElseNull(), target.extent); return null; } @Override public Option<String> getFormat() { assertEquals("format copy", source.getFormat().getOrElseNull(), target.format); return null; } @Override public Option<String> getHasFormat() { assertEquals("hasFormat copy", source.getHasFormat().getOrElseNull(), target.hasFormat); return null; } @Override public Option<String> getHasPart() { assertEquals("hasPart copy", source.getHasPart().getOrElseNull(), target.hasPart); return null; } @Override public Option<String> getHasVersion() { assertEquals("hasVersion copy", source.getHasVersion().getOrElseNull(), target.hasVersion); return null; } @Override public Option<String> getIdentifier() { assertEquals("identifier copy", source.getIdentifier().getOrElseNull(), target.identifier); return null; } @Override public Option<String> getInstructionalMethod() { assertEquals("instructionalMethod copy", source.getInstructionalMethod().getOrElseNull(), target.instructionalMethod); return null; } @Override public Option<String> getIsFormatOf() { assertEquals("isFormatOf copy", source.getIsFormatOf().getOrElseNull(), target.isFormatOf); return null; } @Override public Option<String> getIsPartOf() { assertEquals("isPartOf copy", source.getIsPartOf().getOrElseNull(), target.isPartOf); return null; } @Override public Option<String> getIsReferencedBy() { assertEquals("isReferencedBy copy", source.getIsReferencedBy().getOrElseNull(), target.isReferencedBy); return null; } @Override public Option<String> getIsReplacedBy() { assertEquals("isReplacedBy copy", source.getIsReplacedBy().getOrElseNull(), target.isReplacedBy); return null; } @Override public Option<String> getIsRequiredBy() { assertEquals("isRequiredBy copy", source.getIsRequiredBy().getOrElseNull(), target.isRequiredBy); return null; } @Override public Option<String> getIssued() { assertEquals("issued copy", source.getIssued().getOrElseNull(), target.issued); return null; } @Override public Option<String> getIsVersionOf() { assertEquals("isVersionOf copy", source.getIsVersionOf().getOrElseNull(), target.isVersionOf); return null; } @Override public Option<String> getLanguage() { assertEquals("language copy", source.getLanguage().getOrElseNull(), target.language); return null; } @Override public Option<String> getLicense() { assertEquals("license copy", source.getLicense().getOrElseNull(), target.license); return null; } @Override public Option<String> getMediator() { assertEquals("mediator copy", source.getMediator().getOrElseNull(), target.mediator); return null; } @Override public Option<String> getMedium() { assertEquals("medium copy", source.getMedium().getOrElseNull(), target.medium); return null; } @Override public Option<String> getModified() { assertEquals("modified copy", source.getModified().getOrElseNull(), target.modified); return null; } @Override public Option<String> getProvenance() { assertEquals("provenance copy", source.getProvenance().getOrElseNull(), target.provenance); return null; } @Override public Option<String> getPublisher() { assertEquals("publisher copy", source.getPublisher().getOrElseNull(), target.publisher); return null; } @Override public Option<String> getReferences() { assertEquals("references copy", source.getReferences().getOrElseNull(), target.references); return null; } @Override public Option<String> getRelation() { assertEquals("relation copy", source.getRelation().getOrElseNull(), target.relation); return null; } @Override public Option<String> getReplaces() { assertEquals("replaces copy", source.getReplaces().getOrElseNull(), target.replaces); return null; } @Override public Option<String> getRequires() { assertEquals("requires copy", source.getRequires().getOrElseNull(), target.requires); return null; } @Override public Option<String> getRights() { assertEquals("rights copy", source.getRights().getOrElseNull(), target.rights); return null; } @Override public Option<String> getRightsHolder() { assertEquals("rightsHolder copy", source.getRightsHolder().getOrElseNull(), target.rightsHolder); return null; } @Override public Option<String> getSource() { assertEquals("source copy", source.getSource().getOrElseNull(), target.source); return null; } @Override public Option<String> getSpatial() { assertEquals("spatial copy", source.getSpatial().getOrElseNull(), target.spatial); return null; } @Override public Option<String> getSubject() { assertEquals("subject copy", source.getSubject().getOrElseNull(), target.subject); return null; } @Override public Option<String> getTableOfContents() { assertEquals("tableOfContents copy", source.getTableOfContents().getOrElseNull(), target.tableOfContents); return null; } @Override public Option<String> getTemporal() { assertEquals("temporal copy", source.getTemporal().getOrElseNull(), target.temporal); return null; } @Override public String getTitle() { assertEquals("title copy", source.getTitle(), target.title); return null; } @Override public Option<String> getType() { assertEquals("type copy", source.getType().getOrElseNull(), target.type); return null; } @Override public Option<String> getValid() { assertEquals("valid copy", source.getValid().getOrElseNull(), target.valid); return null; } }); } }