Skip to content

Commit 3ae981e

Browse files
committed
Merge pull request #320 from sharwell/TestCreateWithMetadata
Add test to verify operation of creating an object with custom metadata
2 parents a79c5a0 + 6f74ff4 commit 3ae981e

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

src/testing/integration/Providers/Rackspace/UserObjectStorageTests.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,44 @@ public void TestCreateObject()
12311231
provider.DeleteContainer(containerName, deleteObjects: true);
12321232
}
12331233

1234+
[TestMethod]
1235+
[TestCategory(TestCategories.User)]
1236+
[TestCategory(TestCategories.ObjectStorage)]
1237+
public void TestCreateObjectWithMetadata()
1238+
{
1239+
IObjectStorageProvider provider = Bootstrapper.CreateObjectStorageProvider();
1240+
string containerName = TestContainerPrefix + Path.GetRandomFileName();
1241+
string objectName = Path.GetRandomFileName();
1242+
// another random name counts as random content
1243+
string fileData = Path.GetRandomFileName();
1244+
1245+
ObjectStore containerResult = provider.CreateContainer(containerName);
1246+
Assert.AreEqual(ObjectStore.ContainerCreated, containerResult);
1247+
1248+
using (MemoryStream uploadStream = new MemoryStream(Encoding.UTF8.GetBytes(fileData)))
1249+
{
1250+
Dictionary<string, string> headers = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
1251+
{
1252+
{ "X-Object-Meta-Projectcode", "ProjectCode" },
1253+
{ "X-Object-Meta-Filedesc", "FileDescription" },
1254+
{ "X-Object-Meta-Usercode", "User Code" },
1255+
};
1256+
provider.CreateObject(containerName, uploadStream, objectName, headers: headers);
1257+
}
1258+
1259+
string actualData = ReadAllObjectText(provider, containerName, objectName, Encoding.UTF8, verifyEtag: true);
1260+
Assert.AreEqual(fileData, actualData);
1261+
1262+
Dictionary<string, string> metadata = provider.GetObjectMetaData(containerName, objectName);
1263+
Assert.AreEqual("ProjectCode", metadata["projectcode"]);
1264+
Assert.AreEqual("FileDescription", metadata["fileDesc"]);
1265+
Assert.AreEqual("User Code", metadata["usercode"]);
1266+
1267+
/* Cleanup
1268+
*/
1269+
provider.DeleteContainer(containerName, deleteObjects: true);
1270+
}
1271+
12341272
[TestMethod]
12351273
[TestCategory(TestCategories.User)]
12361274
[TestCategory(TestCategories.ObjectStorage)]

0 commit comments

Comments
 (0)