Skip to content
Snippets Groups Projects
Commit 121ce142 authored by Steven Murray's avatar Steven Murray
Browse files

Added cta_client_MockClientAPITest.createDirectory_inherit_storage_class

parent 9ed3bdc1
Branches
Tags
No related merge requests found
......@@ -25,9 +25,10 @@ cta::DirectoryEntry::DirectoryEntry():
// constructor
//------------------------------------------------------------------------------
cta::DirectoryEntry::DirectoryEntry(const EntryType entryType,
const std::string &name):
const std::string &name, const std::string &storageClassName):
entryType(entryType),
name(name),
ownerId(0),
groupId(0) {
groupId(0),
storageClassName(storageClassName) {
}
......@@ -76,8 +76,11 @@ struct DirectoryEntry {
*
* @param entryType The type of the entry.
* @param name The name of the directory entry.
* @param storageClassName The name of the directory's storage class or an
* empty string if the directory does not have a storage class.
*/
DirectoryEntry(const EntryType entryType, const std::string &name);
DirectoryEntry(const EntryType entryType, const std::string &name,
const std::string &storageClassName);
}; // DirectoryEntry
......
......@@ -9,7 +9,8 @@
// constructor
//------------------------------------------------------------------------------
cta::MockClientAPI::MockClientAPI():
m_fileSystemRoot(DirectoryEntry(DirectoryEntry::ENTRYTYPE_DIRECTORY, "/")) {
m_fileSystemRoot(DirectoryEntry(DirectoryEntry::ENTRYTYPE_DIRECTORY, "/", ""))
{
}
//------------------------------------------------------------------------------
......@@ -223,7 +224,8 @@ void cta::MockClientAPI::createDirectory(const SecurityIdentity &requester,
throw Exception("A file or directory already exists with the same name");
}
DirectoryEntry dirEntry(DirectoryEntry::ENTRYTYPE_DIRECTORY, dirName);
DirectoryEntry dirEntry(DirectoryEntry::ENTRYTYPE_DIRECTORY, dirName,
enclosingNode.getEntry().storageClassName);
enclosingNode.addChild(new FileSystemNode(dirEntry));
}
......
......@@ -431,11 +431,15 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_second_level) {
TestingMockClientAPI api;
const SecurityIdentity requester;
ASSERT_TRUE(api.getDirectoryStorageClass(requester, "/").empty());
{
const std::string topLevelDirPath = "/grandparent";
ASSERT_NO_THROW(api.createDirectory(requester, topLevelDirPath));
}
{
DirectoryIterator itor;
ASSERT_NO_THROW(itor = api.getDirectoryContents(requester, "/"));
......@@ -449,11 +453,15 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_second_level) {
ASSERT_EQ(std::string("grandparent"), entry.name);
}
ASSERT_TRUE(api.getDirectoryStorageClass(requester, "/grandparent").empty());
{
const std::string secondLevelDirPath = "/grandparent/parent";
ASSERT_NO_THROW(api.createDirectory(requester, secondLevelDirPath));
}
{
DirectoryIterator itor;
ASSERT_NO_THROW(itor = api.getDirectoryContents(requester, "/"));
......@@ -480,6 +488,8 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_second_level) {
ASSERT_EQ(std::string("parent"), entry.name);
}
ASSERT_TRUE(api.getDirectoryStorageClass(requester, "/grandparent/parent").empty());
}
TEST_F(cta_client_MockClientAPITest, createDirectory_inherit_storage_class) {
......@@ -488,11 +498,21 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_inherit_storage_class) {
TestingMockClientAPI api;
const SecurityIdentity requester;
ASSERT_TRUE(api.getDirectoryStorageClass(requester, "/").empty());
{
const std::string name = "TestStorageClass";
const uint8_t nbCopies = 2;
ASSERT_NO_THROW(api.createStorageClass(requester, name, nbCopies));
}
{
const std::string topLevelDirPath = "/grandparent";
ASSERT_NO_THROW(api.createDirectory(requester, topLevelDirPath));
}
{
DirectoryIterator itor;
ASSERT_NO_THROW(itor = api.getDirectoryContents(requester, "/"));
......@@ -506,13 +526,21 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_inherit_storage_class) {
ASSERT_EQ(std::string("grandparent"), entry.name);
ASSERT_TRUE(api.getDirectoryStorageClass(requester, "/grandparent").empty());
ASSERT_NO_THROW(api.setDirectoryStorageClass(requester, "/grandparent",
"TestStorageClass"));
}
ASSERT_EQ(std::string("TestStorageClass"),
api.getDirectoryStorageClass(requester, "/grandparent"));
{
const std::string secondLevelDirPath = "/grandparent/parent";
ASSERT_NO_THROW(api.createDirectory(requester, secondLevelDirPath));
}
{
DirectoryIterator itor;
ASSERT_NO_THROW(itor = api.getDirectoryContents(requester, "/"));
......@@ -539,6 +567,9 @@ TEST_F(cta_client_MockClientAPITest, createDirectory_inherit_storage_class) {
ASSERT_EQ(std::string("parent"), entry.name);
}
ASSERT_EQ(std::string("TestStorageClass"),
api.getDirectoryStorageClass(requester, "/grandparent/parent"));
}
TEST_F(cta_client_MockClientAPITest, deleteDirectory_root) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment