package gov.loc.repository.bagit.writer; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.nio.charset.StandardCharsets; import java.nio.file.Paths; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import gov.loc.repository.bagit.PrivateConstructorTest; import gov.loc.repository.bagit.domain.Metadata; import gov.loc.repository.bagit.domain.Version; public class MetadataWriterTest extends PrivateConstructorTest { @Rule public TemporaryFolder folder= new TemporaryFolder(); @Test public void testClassIsWellDefined() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException{ assertUtilityClassWellDefined(MetadataWriter.class); } @Test public void testWriteBagitInfoFile() throws IOException{ File rootDir = folder.newFolder(); File bagInfo = new File(rootDir, "bag-info.txt"); File packageInfo = new File(rootDir, "package-info.txt"); Metadata metadata = new Metadata(); metadata.add("key1", "value1"); metadata.add("key2", "value2"); metadata.add("key3", "value3"); assertFalse(bagInfo.exists()); assertFalse(packageInfo.exists()); MetadataWriter.writeBagMetadata(metadata, new Version(0,96), Paths.get(rootDir.toURI()), StandardCharsets.UTF_8); assertTrue(bagInfo.exists()); MetadataWriter.writeBagMetadata(metadata, new Version(0,95), Paths.get(rootDir.toURI()), StandardCharsets.UTF_8); assertTrue(packageInfo.exists()); } }