Beispiel #1
0
  public void testStorageUpgrade() throws Exception {
    User testUser = null;
    Weblog testWeblog1 = null;
    Weblog testWeblog2 = null;
    String oldmax = "4";
    PropertiesManager pmgr = WebloggerFactory.getWeblogger().getPropertiesManager();
    try {
      // set dir max limit high so we won't bump into it
      RuntimeConfigProperty prop = pmgr.getProperty("uploads.dir.maxsize");
      oldmax = prop.getValue();
      prop.setValue("20");
      pmgr.saveProperty(prop);
      TestUtils.endSession(true);

      testUser = TestUtils.setupUser("mediaFileTestUser");
      testWeblog1 = TestUtils.setupWeblog("testblog1", testUser);
      testWeblog2 = TestUtils.setupWeblog("testblog2", testUser);

      MediaFileManager mgr = WebloggerFactory.getWeblogger().getMediaFileManager();
      JPAMediaFileManagerImpl mmgr = (JPAMediaFileManagerImpl) mgr;

      assertTrue("Upgrade required", mmgr.isFileStorageUpgradeRequired());

      mmgr.upgradeFileStorage();
      TestUtils.endSession(true);

      assertFalse("Upgrade required", mmgr.isFileStorageUpgradeRequired());

      // now, let's check to see if migration was sucessful

      MediaFileDirectory root1 = mgr.getMediaFileRootDirectory(testWeblog1);
      assertNotNull("testblog1's mediafile dir exists", root1);
      assertNotNull(mgr.getMediaFileByPath(testWeblog1, "/sub1/hawk.jpg"));
      assertNotNull(mgr.getMediaFileByPath(testWeblog1, "/sub1/sub2/nasa.jpg"));
      assertNotNull(mgr.getMediaFileByPath(testWeblog1, "/roller50-prop.png"));

      assertNotNull(mgr.getMediaFileByOriginalPath(testWeblog1, "/sub1/hawk.jpg"));

      MediaFileDirectory root2 = mgr.getMediaFileRootDirectory(testWeblog2);
      assertNotNull("testblog2's mediafile dir exists", root2);
      assertNotNull(root2.getMediaFile("amsterdam.jpg"));
      assertNotNull(root2.getMediaFile("p47-thunderbolt.jpg"));
      assertNotNull(root2.getMediaFile("rollerwiki.png"));

    } finally {

      File statusFile =
          new File(
              WebloggerConfig.getProperty("uploads.dir")
                  + File.separator
                  + JPAMediaFileManagerImpl.MIGRATION_STATUS_FILENAME);
      statusFile.delete();

      // reset dir max to old value
      RuntimeConfigProperty prop = pmgr.getProperty("uploads.dir.maxsize");
      prop.setValue(oldmax);
      pmgr.saveProperty(prop);

      TestUtils.endSession(true);
      TestUtils.teardownWeblog(testWeblog1.getId());
      TestUtils.teardownWeblog(testWeblog2.getId());
      TestUtils.teardownUser(testUser.getUserName());
      TestUtils.endSession(true);
    }
  }