@Test
  public void postGetHeadUpdateDeleteUndeleteTest() throws Exception {
    // add another account
    accountService.createAndAddRandomAccount();
    // valid account and container names passed as part of POST
    for (Account testAccount : accountService.getAllAccounts()) {
      if (testAccount.getId() != Account.UNKNOWN_ACCOUNT_ID) {
        for (Container container : testAccount.getAllContainers()) {
          doPostGetHeadUpdateDeleteUndeleteTest(testAccount, container, testAccount.getName(), !container.isCacheable(),
              testAccount, container);
          doConditionalUpdateAndDeleteTest(testAccount, container, testAccount.getName());
        }
      }
    }
    // valid account and container names but only serviceId passed as part of POST
    doPostGetHeadUpdateDeleteUndeleteTest(null, null, refAccount.getName(), false, refAccount,
        refDefaultPublicContainer);
    doPostGetHeadUpdateDeleteUndeleteTest(null, null, refAccount.getName(), true, refAccount,
        refDefaultPrivateContainer);
    // unrecognized serviceId
    doPostGetHeadUpdateDeleteUndeleteTest(null, null, "unknown_service_id", false, InMemAccountService.UNKNOWN_ACCOUNT,
        Container.DEFAULT_PUBLIC_CONTAINER);
    doPostGetHeadUpdateDeleteUndeleteTest(null, null, "unknown_service_id", true, InMemAccountService.UNKNOWN_ACCOUNT,
        Container.DEFAULT_PRIVATE_CONTAINER);
  }
Tests blob POST, GET, HEAD, TTL update and DELETE operations.
@throws Exception
ambry-frontend/src/test/java/com/github/ambry/frontend/FrontendRestRequestServiceTest.java