@Test
  public void postGetHeadUpdateDeleteUndeleteTest() throws Exception {
    // add some accounts
    Account refAccount = ACCOUNT_SERVICE.createAndAddRandomAccount();
    Container publicContainer = refAccount.getContainerById(Container.DEFAULT_PUBLIC_CONTAINER_ID);
    Container privateContainer = refAccount.getContainerById(Container.DEFAULT_PRIVATE_CONTAINER_ID);
    int refContentSize = (int) FRONTEND_CONFIG.chunkedGetResponseThresholdInBytes * 3;

    // with valid account and containers
    for (int i = 0; i < 2; i++) {
      Account account = ACCOUNT_SERVICE.createAndAddRandomAccount();
      for (Container container : account.getAllContainers()) {
        doPostGetHeadUpdateDeleteUndeleteTest(refContentSize, account, container, account.getName(),
            !container.isCacheable(), account.getName(), container.getName(), false);
      }
    }
    // valid account and container names but only serviceId passed as part of POST
    doPostGetHeadUpdateDeleteUndeleteTest(refContentSize, null, null, refAccount.getName(), false, refAccount.getName(),
        publicContainer.getName(), false);
    doPostGetHeadUpdateDeleteUndeleteTest(refContentSize, null, null, refAccount.getName(), true, refAccount.getName(),
        privateContainer.getName(), false);
    // unrecognized serviceId
    doPostGetHeadUpdateDeleteUndeleteTest(refContentSize, null, null, "unknown_service_id", false, null, null, false);
    doPostGetHeadUpdateDeleteUndeleteTest(refContentSize, null, null, "unknown_service_id", true, null, null, false);
    // different sizes
    for (int contentSize : new int[]{0, (int) FRONTEND_CONFIG.chunkedGetResponseThresholdInBytes - 1,
        (int) FRONTEND_CONFIG.chunkedGetResponseThresholdInBytes, refContentSize}) {
      doPostGetHeadUpdateDeleteUndeleteTest(contentSize, refAccount, publicContainer, refAccount.getName(),
          !publicContainer.isCacheable(), refAccount.getName(), publicContainer.getName(), false);
    }
  }
Tests blob POST, GET, HEAD, TTL update and DELETE operations.
@throws Exception
ambry-frontend/src/integration-test/java/com/github/ambry/frontend/FrontendIntegrationTest.java