@BeforeGroups(groups = {"live"})
  public void setupClient() throws InterruptedException, ExecutionException, TimeoutException {
    String uid = checkNotNull(System.getProperty("jclouds.test.user"), "jclouds.test.user");
    String key = checkNotNull(System.getProperty("jclouds.test.key"), "jclouds.test.key");

    RestContext<AtmosStorageAsyncClient, AtmosStorageClient> context =
        new AtmosStorageContextBuilder(new AtmosStoragePropertiesBuilder(uid, key).build())
            .withModules(new Log4JLoggingModule())
            .buildContext();
    connection = context.getApi();
    ClearContainerStrategy clearer = new RecursiveRemove(context.getAsyncApi(), connection);
    for (DirectoryEntry entry : connection.listDirectories()) {
      if (entry.getObjectName().startsWith(containerPrefix)) {
        clearer.execute(entry.getObjectName());
        deleteConfirmed(entry.getObjectName());
      }
    }
  }
 @Test(timeOut = 5 * 60 * 1000)
 public void testCreateDirectory() throws Exception {
   boolean created = false;
   while (!created) {
     privateDirectory = containerPrefix + new SecureRandom().nextInt();
     try {
       created = connection.createDirectory(privateDirectory) != null;
     } catch (UndeclaredThrowableException e) {
       HttpResponseException htpe = (HttpResponseException) e.getCause().getCause();
       if (htpe.getResponse().getStatusCode() == 409) continue;
       throw e;
     }
   }
   BoundedSortedSet<? extends DirectoryEntry> response = connection.listDirectories();
   for (DirectoryEntry id : response) {
     BoundedSortedSet<? extends DirectoryEntry> r2 = connection.listDirectory(id.getObjectName());
     assert r2 != null;
   }
 }