@Test public void newContainerSetup() throws Exception
{

   final String TEST_SITE_NAME = "DiscussionsTestNewTestSite";
   
   TRANSACTION_HELPER.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
   {
      @Override
      public Void execute() throws Throwable
      {
         if (SITE_SERVICE.getSite(TEST_SITE_NAME) != null)
         {
            SITE_SERVICE.deleteSite(TEST_SITE_NAME);
         }
         SITE_SERVICE.createSite(
               TEST_SITE_PREFIX, TEST_SITE_NAME, "Test", "Test", SiteVisibility.PUBLIC);
         // Won't have the container to start with
         assertFalse(SITE_SERVICE.hasContainer(TEST_SITE_NAME, DiscussionServiceImpl.DISCUSSION_COMPONENT));
         // Create a link
         DISCUSSION_SERVICE.createTopic(TEST_SITE_NAME, "Title");
         
         // It will now exist
         assertTrue(SITE_SERVICE.hasContainer(TEST_SITE_NAME, DiscussionServiceImpl.DISCUSSION_COMPONENT));
         // It'll be a tag scope too
         NodeRef container = SITE_SERVICE.getContainer(TEST_SITE_NAME, DiscussionServiceImpl.DISCUSSION_COMPONENT);
         assertTrue(TAGGING_SERVICE.isTagScope(container));
         // Tidy up
         SITE_SERVICE.deleteSite(TEST_SITE_NAME);
         return null;
      }
   });
}