Commit 430efcbe authored by Steven Murray's avatar Steven Murray
Browse files

Added tests for create a tape without a library and without a pool

parent e18062ea
......@@ -17,22 +17,22 @@ protected:
TEST_F(cta_client_MockAdminHostTableTest, createAdminHost_new) {
using namespace cta;
MockAdminHostTable db;
MockAdminHostTable table;
const SecurityIdentity requester;
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_TRUE(adminHosts.empty());
}
const std::string adminHost1 = "adminHost1";
const std::string comment = "Comment";
ASSERT_NO_THROW(db.createAdminHost(requester, adminHost1, comment));
ASSERT_NO_THROW(table.createAdminHost(requester, adminHost1, comment));
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_EQ(1, adminHosts.size());
ASSERT_EQ(adminHost1, adminHosts.front().getName());
......@@ -43,33 +43,33 @@ TEST_F(cta_client_MockAdminHostTableTest, createAdminHost_new) {
TEST_F(cta_client_MockAdminHostTableTest, deleteAdminHost_existing) {
using namespace cta;
MockAdminHostTable db;
MockAdminHostTable table;
const SecurityIdentity requester;
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_TRUE(adminHosts.empty());
}
const std::string adminHost1 = "adminHost1";
const std::string comment = "Comment";
ASSERT_NO_THROW(db.createAdminHost(requester, adminHost1, comment));
ASSERT_NO_THROW(table.createAdminHost(requester, adminHost1, comment));
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_EQ(1, adminHosts.size());
ASSERT_EQ(adminHost1, adminHosts.front().getName());
ASSERT_EQ(comment, adminHosts.front().getComment());
}
ASSERT_NO_THROW(db.deleteAdminHost(requester, adminHost1));
ASSERT_NO_THROW(table.deleteAdminHost(requester, adminHost1));
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_TRUE(adminHosts.empty());
}
}
......@@ -77,21 +77,21 @@ TEST_F(cta_client_MockAdminHostTableTest, deleteAdminHost_existing) {
TEST_F(cta_client_MockAdminHostTableTest, deleteAdminHost_non_existing) {
using namespace cta;
MockAdminHostTable db;
MockAdminHostTable table;
const SecurityIdentity requester;
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_TRUE(adminHosts.empty());
}
const std::string adminHost1 = "adminHost1";
ASSERT_THROW(db.deleteAdminHost(requester, adminHost1), std::exception);
ASSERT_THROW(table.deleteAdminHost(requester, adminHost1), std::exception);
{
std::list<AdminHost> adminHosts;
ASSERT_NO_THROW(adminHosts = db.getAdminHosts(requester));
ASSERT_NO_THROW(adminHosts = table.getAdminHosts(requester));
ASSERT_TRUE(adminHosts.empty());
}
}
......
......@@ -18,12 +18,12 @@ protected:
TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_new) {
using namespace cta;
MockAdminUserTable db;
MockAdminUserTable table;
const SecurityIdentity requester;
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
......@@ -31,11 +31,11 @@ TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_new) {
const uint16_t adminUser1Gid = 5678;
const UserIdentity adminUser1(adminUser1Uid, adminUser1Gid);
const std::string comment = "Comment";
ASSERT_NO_THROW(db.createAdminUser(requester, adminUser1, comment));
ASSERT_NO_THROW(table.createAdminUser(requester, adminUser1, comment));
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_EQ(1, adminUsers.size());
ASSERT_EQ(adminUser1Uid, adminUsers.front().getUser().getUid());
......@@ -47,12 +47,12 @@ TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_new) {
TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_already_existing) {
using namespace cta;
MockAdminUserTable db;
MockAdminUserTable table;
const SecurityIdentity requester;
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
......@@ -60,11 +60,11 @@ TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_already_existing) {
const uint16_t adminUser1Gid = 5678;
const UserIdentity adminUser1(adminUser1Uid, adminUser1Gid);
const std::string comment = "Comment";
ASSERT_NO_THROW(db.createAdminUser(requester, adminUser1, comment));
ASSERT_NO_THROW(table.createAdminUser(requester, adminUser1, comment));
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_EQ(1, adminUsers.size());
ASSERT_EQ(adminUser1Uid, adminUsers.front().getUser().getUid());
......@@ -72,12 +72,12 @@ TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_already_existing) {
ASSERT_EQ(comment, adminUsers.front().getComment());
}
ASSERT_THROW(db.createAdminUser(requester, adminUser1, comment),
ASSERT_THROW(table.createAdminUser(requester, adminUser1, comment),
std::exception);
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_EQ(1, adminUsers.size());
}
}
......@@ -85,12 +85,12 @@ TEST_F(cta_client_MockAdminUserTableTest, createAdminUser_already_existing) {
TEST_F(cta_client_MockAdminUserTableTest, deleteAdminUser_existing) {
using namespace cta;
MockAdminUserTable db;
MockAdminUserTable table;
const SecurityIdentity requester;
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
......@@ -98,11 +98,11 @@ TEST_F(cta_client_MockAdminUserTableTest, deleteAdminUser_existing) {
const uint16_t adminUser1Gid = 5678;
const UserIdentity adminUser1(adminUser1Uid, adminUser1Gid);
const std::string comment = "Comment";
ASSERT_NO_THROW(db.createAdminUser(requester, adminUser1, comment));
ASSERT_NO_THROW(table.createAdminUser(requester, adminUser1, comment));
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_EQ(1, adminUsers.size());
ASSERT_EQ(adminUser1Uid, adminUsers.front().getUser().getUid());
......@@ -110,10 +110,10 @@ TEST_F(cta_client_MockAdminUserTableTest, deleteAdminUser_existing) {
ASSERT_EQ(comment, adminUsers.front().getComment());
}
ASSERT_NO_THROW(db.deleteAdminUser(requester, adminUser1));
ASSERT_NO_THROW(table.deleteAdminUser(requester, adminUser1));
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
}
......@@ -121,23 +121,23 @@ TEST_F(cta_client_MockAdminUserTableTest, deleteAdminUser_existing) {
TEST_F(cta_client_MockAdminUserTableTest, deleteAdminUser_non_existing) {
using namespace cta;
MockAdminUserTable db;
MockAdminUserTable table;
const SecurityIdentity requester;
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
const uint16_t adminUser1Uid = 1234;
const uint16_t adminUser1Gid = 5678;
const UserIdentity adminUser1(adminUser1Uid, adminUser1Gid);
ASSERT_THROW(db.deleteAdminUser(requester, adminUser1), std::exception);
ASSERT_THROW(table.deleteAdminUser(requester, adminUser1), std::exception);
{
std::list<AdminUser> adminUsers;
ASSERT_NO_THROW(adminUsers = db.getAdminUsers(requester));
ASSERT_NO_THROW(adminUsers = table.getAdminUsers(requester));
ASSERT_TRUE(adminUsers.empty());
}
}
......
......@@ -17,26 +17,26 @@ protected:
TEST_F(cta_client_MockLogicalLibraryTableTest, createLogicalLibrary_new) {
using namespace cta;
MockLogicalLibraryTable db;
MockLogicalLibraryTable table;
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
const std::string libraryName = "TestLogicalLibrary";
ASSERT_THROW(db.checkLogicalLibraryExists(libraryName), std::exception);
ASSERT_THROW(table.checkLogicalLibraryExists(libraryName), std::exception);
const std::string libraryComment = "Comment";
ASSERT_NO_THROW(db.createLogicalLibrary(requester, libraryName,
ASSERT_NO_THROW(table.createLogicalLibrary(requester, libraryName,
libraryComment));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_EQ(1, libraries.size());
LogicalLibrary logicalLibrary;
......@@ -45,30 +45,30 @@ TEST_F(cta_client_MockLogicalLibraryTableTest, createLogicalLibrary_new) {
ASSERT_EQ(libraryComment, logicalLibrary.getComment());
}
ASSERT_NO_THROW(db.checkLogicalLibraryExists(libraryName));
ASSERT_NO_THROW(table.checkLogicalLibraryExists(libraryName));
}
TEST_F(cta_client_MockLogicalLibraryTableTest,
createLogicalLibrary_already_existing) {
using namespace cta;
MockLogicalLibraryTable db;
MockLogicalLibraryTable table;
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
const std::string libraryName = "TestLogicalLibrary";
const std::string libraryComment = "Comment";
ASSERT_NO_THROW(db.createLogicalLibrary(requester, libraryName,
ASSERT_NO_THROW(table.createLogicalLibrary(requester, libraryName,
libraryComment));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_EQ(1, libraries.size());
LogicalLibrary logicalLibrary;
......@@ -77,7 +77,7 @@ TEST_F(cta_client_MockLogicalLibraryTableTest,
ASSERT_EQ(libraryComment, logicalLibrary.getComment());
}
ASSERT_THROW(db.createLogicalLibrary(requester, libraryName,
ASSERT_THROW(table.createLogicalLibrary(requester, libraryName,
libraryComment), std::exception);
}
......@@ -85,23 +85,23 @@ TEST_F(cta_client_MockLogicalLibraryTableTest,
createLogicalLibrary_lexicographical_order) {
using namespace cta;
MockLogicalLibraryTable db;
MockLogicalLibraryTable table;
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
ASSERT_NO_THROW(db.createLogicalLibrary(requester, "d", "Comment d"));
ASSERT_NO_THROW(db.createLogicalLibrary(requester, "b", "Comment b"));
ASSERT_NO_THROW(db.createLogicalLibrary(requester, "a", "Comment a"));
ASSERT_NO_THROW(db.createLogicalLibrary(requester, "c", "Comment c"));
ASSERT_NO_THROW(table.createLogicalLibrary(requester, "d", "Comment d"));
ASSERT_NO_THROW(table.createLogicalLibrary(requester, "b", "Comment b"));
ASSERT_NO_THROW(table.createLogicalLibrary(requester, "a", "Comment a"));
ASSERT_NO_THROW(table.createLogicalLibrary(requester, "c", "Comment c"));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_EQ(4, libraries.size());
ASSERT_EQ(std::string("a"), libraries.front().getName());
......@@ -117,23 +117,23 @@ TEST_F(cta_client_MockLogicalLibraryTableTest,
TEST_F(cta_client_MockLogicalLibraryTableTest, deleteLogicalLibrary_existing) {
using namespace cta;
MockLogicalLibraryTable db;
MockLogicalLibraryTable table;
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
const std::string libraryName = "TestLogicalLibrary";
const std::string libraryComment = "Comment";
ASSERT_NO_THROW(db.createLogicalLibrary(requester, libraryName,
ASSERT_NO_THROW(table.createLogicalLibrary(requester, libraryName,
libraryComment));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_EQ(1, libraries.size());
LogicalLibrary logicalLibrary;
......@@ -141,12 +141,12 @@ TEST_F(cta_client_MockLogicalLibraryTableTest, deleteLogicalLibrary_existing) {
ASSERT_EQ(libraryName, logicalLibrary.getName());
ASSERT_EQ(libraryComment, logicalLibrary.getComment());
ASSERT_NO_THROW(db.deleteLogicalLibrary(requester, libraryName));
ASSERT_NO_THROW(table.deleteLogicalLibrary(requester, libraryName));
}
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
}
......@@ -155,22 +155,22 @@ TEST_F(cta_client_MockLogicalLibraryTableTest,
deleteLogicalLibrary_non_existing) {
using namespace cta;
MockLogicalLibraryTable db;
MockLogicalLibraryTable table;
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
const std::string libraryName = "TestLogicalLibrary";
ASSERT_THROW(db.deleteLogicalLibrary(requester, libraryName),
ASSERT_THROW(table.deleteLogicalLibrary(requester, libraryName),
std::exception);
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = db.getLogicalLibraries(requester));
ASSERT_NO_THROW(libraries = table.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
}
......
......@@ -225,6 +225,8 @@ void cta::MockMiddleTierAdmin::createTape(
const std::string &tapePoolName,
const uint64_t capacityInBytes,
const std::string &comment) {
m_db.libraries.checkLogicalLibraryExists(logicalLibraryName);
m_db.tapePools.checkTapePoolExists(tapePoolName);
m_db.tapes.createTape(requester, vid, logicalLibraryName, tapePoolName,
capacityInBytes, comment);
}
......
......@@ -31,7 +31,8 @@ TEST_F(cta_client_MockMiddleTierAdminTest, createStorageClass_new) {
const std::string name = "TestStorageClass";
const uint8_t nbCopies = 2;
const std::string comment = "Comment";
ASSERT_NO_THROW(adminApi.createStorageClass(requester, name, nbCopies, comment));
ASSERT_NO_THROW(adminApi.createStorageClass(requester, name, nbCopies,
comment));
{
std::list<StorageClass> storageClasses;
......@@ -563,4 +564,183 @@ TEST_F(cta_client_MockMiddleTierAdminTest, deleteMigrationRoute_non_existing) {
std::exception);
}
TEST_F(cta_client_MockMiddleTierAdminTest, createTape_new) {
using namespace cta;
MockDatabase db;
MockMiddleTierAdmin adminApi(db);
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = adminApi.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
{
std::list<TapePool> pools;
ASSERT_NO_THROW(pools = adminApi.getTapePools(requester));
ASSERT_TRUE(pools.empty());
}
{
std::list<Tape> tapes;
ASSERT_NO_THROW(tapes = adminApi.getTapes(requester));
ASSERT_TRUE(tapes.empty());
}
const std::string libraryName = "TestLogicalLibrary";
const std::string libraryComment = "Library comment";
ASSERT_NO_THROW(adminApi.createLogicalLibrary(requester, libraryName,
libraryComment));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = adminApi.getLogicalLibraries(requester));
ASSERT_EQ(1, libraries.size());
LogicalLibrary logicalLibrary;
ASSERT_NO_THROW(logicalLibrary = libraries.front());
ASSERT_EQ(libraryName, logicalLibrary.getName());
ASSERT_EQ(libraryComment, logicalLibrary.getComment());
}
const std::string tapePoolName = "TestTapePool";
const uint16_t nbDrives = 1;
const uint16_t nbPartialTapes = 1;
const std::string comment = "Tape pool omment";
ASSERT_NO_THROW(adminApi.createTapePool(requester, tapePoolName, nbDrives,
nbPartialTapes, comment));
{
std::list<TapePool> tapePools;
ASSERT_NO_THROW(tapePools = adminApi.getTapePools(requester));
ASSERT_EQ(1, tapePools.size());
TapePool tapePool;
ASSERT_NO_THROW(tapePool = tapePools.front());
ASSERT_EQ(tapePoolName, tapePool.getName());
ASSERT_EQ(comment, tapePool.getComment());
}
const std::string vid = "TestVid";
const uint64_t capacityInBytes = 12345678;
const std::string tapeComment = "Tape comment";
ASSERT_NO_THROW(adminApi.createTape(requester, vid, libraryName, tapePoolName,
capacityInBytes, tapeComment));
{
std::list<Tape> tapes;
ASSERT_NO_THROW(tapes = adminApi.getTapes(requester));
ASSERT_EQ(1, tapes.size());
Tape tape;
ASSERT_NO_THROW(tape = tapes.front());
ASSERT_EQ(vid, tape.getVid());
ASSERT_EQ(libraryName, tape.getLogicalLibraryName());
ASSERT_EQ(tapePoolName, tape.getTapePoolName());
ASSERT_EQ(capacityInBytes, tape.getCapacityInBytes());
ASSERT_EQ(0, tape.getDataOnTapeInBytes());
ASSERT_EQ(tapeComment, tape.getComment());
}
}
TEST_F(cta_client_MockMiddleTierAdminTest,
createTape_new_non_existing_library) {
using namespace cta;
MockDatabase db;
MockMiddleTierAdmin adminApi(db);
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = adminApi.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
{
std::list<TapePool> pools;
ASSERT_NO_THROW(pools = adminApi.getTapePools(requester));
ASSERT_TRUE(pools.empty());
}
{
std::list<Tape> tapes;
ASSERT_NO_THROW(tapes = adminApi.getTapes(requester));
ASSERT_TRUE(tapes.empty());
}
const std::string libraryName = "TestLogicalLibrary";
const std::string tapePoolName = "TestTapePool";
const uint16_t nbDrives = 1;
const uint16_t nbPartialTapes = 1;
const std::string comment = "Tape pool omment";
ASSERT_NO_THROW(adminApi.createTapePool(requester, tapePoolName, nbDrives,
nbPartialTapes, comment));
{
std::list<TapePool> tapePools;
ASSERT_NO_THROW(tapePools = adminApi.getTapePools(requester));
ASSERT_EQ(1, tapePools.size());
TapePool tapePool;
ASSERT_NO_THROW(tapePool = tapePools.front());
ASSERT_EQ(tapePoolName, tapePool.getName());
ASSERT_EQ(comment, tapePool.getComment());
}
const std::string vid = "TestVid";
const uint64_t capacityInBytes = 12345678;
const std::string tapeComment = "Tape comment";
ASSERT_THROW(adminApi.createTape(requester, vid, libraryName, tapePoolName,
capacityInBytes, tapeComment), std::exception);
}
TEST_F(cta_client_MockMiddleTierAdminTest, createTape_new_non_existing_pool) {
using namespace cta;
MockDatabase db;
MockMiddleTierAdmin adminApi(db);
const SecurityIdentity requester;
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = adminApi.getLogicalLibraries(requester));
ASSERT_TRUE(libraries.empty());
}
{
std::list<TapePool> pools;
ASSERT_NO_THROW(pools = adminApi.getTapePools(requester));
ASSERT_TRUE(pools.empty());
}
{
std::list<Tape> tapes;
ASSERT_NO_THROW(tapes = adminApi.getTapes(requester));
ASSERT_TRUE(tapes.empty());
}
const std::string libraryName = "TestLogicalLibrary";
const std::string libraryComment = "Library comment";
ASSERT_NO_THROW(adminApi.createLogicalLibrary(requester, libraryName,
libraryComment));
{
std::list<LogicalLibrary> libraries;
ASSERT_NO_THROW(libraries = adminApi.getLogicalLibraries(requester));
ASSERT_EQ(1, libraries.size());
LogicalLibrary logicalLibrary;