workspaceInfo.setFullName(workspaceName);
workspaceInfo.setUserId(userInfo.getUniqueId());
metaStore.createWorkspace(workspaceInfo);
// create a invalid metadata folder
IFileStore rootLocation = OrionConfiguration.getRootLocation();
String orgFolderName = "te";
IFileStore orgFolder = rootLocation.getChild(orgFolderName);
assertTrue(orgFolder.fetchInfo().exists());
assertTrue(orgFolder.fetchInfo().isDirectory());
String invalid = "delete.me";
IFileStore invalidFolderInOrg = orgFolder.getChild(invalid);
assertFalse(invalidFolderInOrg.fetchInfo().exists());
invalidFolderInOrg.mkdir(EFS.NONE, null);
assertTrue(invalidFolderInOrg.fetchInfo().exists());
assertTrue(invalidFolderInOrg.fetchInfo().isDirectory());
// read all the users which will trigger the archive
List<String> users = metaStore.readAllUsers();
assertNotNull(users);
// verify the invalid metadata folder has moved to the archive
IFileStore archiveFolder = rootLocation.getChild(SimpleMetaStoreUtil.ARCHIVE);
assertTrue(archiveFolder.fetchInfo().exists());
assertTrue(archiveFolder.fetchInfo().isDirectory());
IFileStore archiveOrgFolder = archiveFolder.getChild(orgFolderName);
assertTrue(archiveOrgFolder.fetchInfo().exists());
assertTrue(archiveOrgFolder.fetchInfo().isDirectory());
IFileStore archivedFolder = archiveOrgFolder.getChild(invalid);
assertTrue(archivedFolder.fetchInfo().exists());
assertTrue(archivedFolder.fetchInfo().isDirectory());
assertFalse(invalidFolderInOrg.fetchInfo().exists());
}