package fr.gouv.vitam.common.storage.swift;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.io.InputStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import fr.gouv.vitam.common.PropertiesUtils;
import fr.gouv.vitam.common.model.MetadatasObject;
import fr.gouv.vitam.common.storage.ContentAddressableStorageAbstract;
import fr.gouv.vitam.common.storage.StorageConfiguration;
import fr.gouv.vitam.workspace.api.exception.ContentAddressableStorageException;
public class OpenstackSwiftTest {
private ContentAddressableStorageAbstract storage;
private static final String TENANT_ID = "1";
private static final String TYPE = "object";
private static final String OBJECT_ID = "aeaaaaaaaaaam7mxaa2pkak2bnhxy5aaaaaq";
private static final String OBJECT_ID2 = "aeaaaaaaaaaam7mxaa2pkak2bnhxy4aaaaaq";
private InputStream getInputStream(String file) throws IOException {
return PropertiesUtils.getResourceAsStream(file);
}
@Before
public void setup() throws IOException {
final StorageConfiguration configuration = new StorageConfiguration();
configuration.setProvider("openstack-swift").setCredential("vitam-cdh_password").setCephMode(true)
.setSwiftUid("vitam-cdh").setSwiftSubUser("swift").setKeystoneEndPoint("http://143.126.93.21:8080/auth/v1.0");
storage = new OpenstackSwift(configuration);
}
@After
public void ending() {
storage.close();
}
@Ignore
@Test
public void givenObjectAlreadyExistsWhenGetObjectMetadataThenReturnMetadatasObjectResult()
throws ContentAddressableStorageException, IOException {
String containerName = TENANT_ID + "_" + TYPE;
// if (storage.isExistingContainer(containerName)){
// storage.deleteContainer(containerName, true);
// }
storage.createContainer(containerName);
storage.putObject(containerName, OBJECT_ID, getInputStream("file1.pdf"));
// get metadata of file
MetadatasObject result = storage.getObjectMetadatas(containerName, OBJECT_ID);
assertNotNull(result);
assertEquals(OBJECT_ID, result.getObjectName());
assertEquals(TYPE, result.getType());
assertEquals(
"9ba9ef903b46798c83d46bcbd42805eb69ad1b6a8b72e929f87d72f5263a05ade47d8e2f860aece8b9e3acb948364fedf75a3367515cd912965ed22a246ea418",
result.getDigest());
assertEquals(6906, result.getFileSize());
assertNotNull(result.getFileOwner());
assertNotNull(result.getLastModifiedDate());
storage.putObject(containerName, OBJECT_ID2, getInputStream("file2.pdf"));
// get metadata of directory
result = storage.getObjectMetadatas(containerName, null);
assertEquals("object_1", result.getObjectName());
assertEquals(TYPE, result.getType());
assertEquals(null, result.getDigest());
assertEquals(13843, result.getFileSize());
assertEquals("Vitam_" + TENANT_ID, result.getFileOwner());
}
}