package gov.loc.repository.bagit.conformance.profile;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import org.junit.Test;
public class BagitProfileTest extends AbstractBagitProfileTest{
@Test
public void testToString() throws Exception{
String expectedOutput = "BagitProfile [bagitProfileIdentifier=http://canadiana.org/standards/bagit/tdr_ingest.json, "
+ "sourceOrganization=Candiana.org, externalDescription=BagIt profile for ingesting content into the C.O. TDR "
+ "loading dock., contactName=William Wueppelmann, contactEmail=tdr@canadiana.com, version=1.2, "
+ "bagInfoRequirements={Payload-Oxum=[required=true, acceptableValues=[]], Bag-Size=[required=true, "
+ "acceptableValues=[]], Bagging-Date=[required=true, acceptableValues=[]], Source-Organization=[required=true, "
+ "acceptableValues=[Simon Fraser University, York University]], Bag-Count=[required=true, acceptableValues=[]], "
+ "Organization-Address=[required=true, acceptableValues=[8888 University Drive Burnaby, B.C. V5A 1S6 Canada, "
+ "4700 Keele Street Toronto, Ontario M3J 1P3 Canada]], Bag-Group-Identifier=[required=false, "
+ "acceptableValues=[]], External-Identifier=[required=false, acceptableValues=[]], "
+ "Internal-Sender-Identifier=[required=false, acceptableValues=[]], Contact-Email=[required=true, "
+ "acceptableValues=[]], Contact-Phone=[required=false, acceptableValues=[]], "
+ "Internal-Sender-Description=[required=false, acceptableValues=[]], External-Description=[required=true, "
+ "acceptableValues=[]], Contact-Name=[required=true, acceptableValues=[Mark Jordan, Nick Ruest]]}, "
+ "manifestTypesRequired=[md5], fetchFileAllowed=false, serialization=forbidden, "
+ "acceptableMIMESerializationTypes=[application/zip], acceptableBagitVersions=[0.96], "
+ "tagManifestTypesRequired=[md5], tagFilesRequired=[DPN/dpnFirstNode.txt, DPN/dpnRegistry]]";
BagitProfile profile = mapper.readValue(new File("src/test/resources/bagitProfiles/exampleProfile.json"), BagitProfile.class);
assertEquals(expectedOutput, profile.toString());
}
@Test
public void testEquals(){
BagitProfile profile = createExpectedProfile();
assertFalse(profile.equals(null));
BagitProfile differentBagitProfileIdentifier = createExpectedProfile();
differentBagitProfileIdentifier.setBagitProfileIdentifier("foo");
assertFalse(profile.equals(differentBagitProfileIdentifier));
BagitProfile differentSourceOrganization = createExpectedProfile();
differentSourceOrganization.setSourceOrganization("foo");
assertFalse(profile.equals(differentSourceOrganization));
BagitProfile differentExternalDescription = createExpectedProfile();
differentExternalDescription.setExternalDescription("foo");
assertFalse(profile.equals(differentExternalDescription));
BagitProfile differentContactName = createExpectedProfile();
differentContactName.setContactName("foo");
assertFalse(profile.equals(differentContactName));
BagitProfile differentContactEmail = createExpectedProfile();
differentContactEmail.setContactEmail("foo");
assertFalse(profile.equals(differentContactEmail));
BagitProfile differentVersion = createExpectedProfile();
differentVersion.setVersion("foo");
assertFalse(profile.equals(differentVersion));
BagitProfile differentBagInfoRequirements = createExpectedProfile();
differentBagInfoRequirements.setBagInfoRequirements(new HashMap<>());
assertFalse(profile.equals(differentBagInfoRequirements));
BagitProfile differentManifestTypesRequired = createExpectedProfile();
differentManifestTypesRequired.setManifestTypesRequired(Arrays.asList("foo"));
assertFalse(profile.equals(differentManifestTypesRequired));
BagitProfile differentFetchFileAllowed = createExpectedProfile();
differentFetchFileAllowed.setFetchFileAllowed(true);
assertFalse(profile.equals(differentFetchFileAllowed));
BagitProfile differentSerialization = createExpectedProfile();
differentSerialization.setSerialization(Serialization.required);
assertFalse(profile.equals(differentSerialization));
BagitProfile differentAcceptableMIMESerializationTypes = createExpectedProfile();
differentAcceptableMIMESerializationTypes.setAcceptableMIMESerializationTypes(Arrays.asList("foo"));
assertFalse(profile.equals(differentAcceptableMIMESerializationTypes));
BagitProfile differentAcceptableBagitVersions = createExpectedProfile();
differentAcceptableBagitVersions.setAcceptableBagitVersions(Arrays.asList("foo"));
assertFalse(profile.equals(differentAcceptableBagitVersions));
BagitProfile differentTagManifestTypesRequired = createExpectedProfile();
differentTagManifestTypesRequired.setTagManifestTypesRequired(Arrays.asList("foo"));
assertFalse(profile.equals(differentTagManifestTypesRequired));
BagitProfile differentTagFilesRequired = createExpectedProfile();
differentTagFilesRequired.setTagFilesRequired(Arrays.asList("foo"));
assertFalse(profile.equals(differentTagFilesRequired));
}
}