James Moger
2012-09-07 13a3f5bc3e2d25fc76850f86070dc34efe60d77a
tests/com/gitblit/tests/RepositoryModelTest.java
@@ -1,3 +1,19 @@
/*
 * Copyright 2012 John Crygier
 * Copyright 2012 gitblit.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gitblit.tests;
import static org.junit.Assert.assertEquals;
@@ -13,42 +29,30 @@
import com.gitblit.Constants;
import com.gitblit.GitBlit;
import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.JGitUtils;
public class RepositoryModelTest {
   
   private static String oldSection;
   private static String oldSubSection;
   private static boolean wasStarted = false;
   
   @BeforeClass
   public static void startGitBlit() throws Exception {
      wasStarted = GitBlitSuite.startGitblit() == false;
      oldSection = Constants.CUSTOM_DEFINED_PROP_SECTION;
      oldSubSection = Constants.CUSTOM_DEFINED_PROP_SUBSECTION;
      Constants.CUSTOM_DEFINED_PROP_SECTION = "RepositoryModelTest";
      Constants.CUSTOM_DEFINED_PROP_SUBSECTION = "RepositoryModelTestSubSection";
   }
   
   @AfterClass
   public static void stopGitBlit() throws Exception {
      if (wasStarted == false)
         GitBlitSuite.stopGitblit();
      Constants.CUSTOM_DEFINED_PROP_SECTION = oldSection;
      Constants.CUSTOM_DEFINED_PROP_SUBSECTION = oldSubSection;
   }
   
   @Before
   public void initializeConfiguration() throws Exception{
      Repository r = GitBlitSuite.getHelloworldRepository();
      StoredConfig config = JGitUtils.readConfig(r);
      StoredConfig config = r.getConfig();
      
      config.unsetSection(Constants.CUSTOM_DEFINED_PROP_SECTION, Constants.CUSTOM_DEFINED_PROP_SUBSECTION);
      config.setString(Constants.CUSTOM_DEFINED_PROP_SECTION, Constants.CUSTOM_DEFINED_PROP_SUBSECTION, "commitMessageRegEx", "\\d");
      config.setString(Constants.CUSTOM_DEFINED_PROP_SECTION, Constants.CUSTOM_DEFINED_PROP_SUBSECTION, "anotherProperty", "Hello");
      config.unsetSection(Constants.CONFIG_GITBLIT, Constants.CONFIG_CUSTOM_FIELDS);
      config.setString(Constants.CONFIG_GITBLIT, Constants.CONFIG_CUSTOM_FIELDS, "commitMessageRegEx", "\\d");
      config.setString(Constants.CONFIG_GITBLIT, Constants.CONFIG_CUSTOM_FIELDS, "anotherProperty", "Hello");
      
      config.save();
   }
@@ -56,9 +60,9 @@
   @After
   public void teardownConfiguration() throws Exception {
      Repository r = GitBlitSuite.getHelloworldRepository();
      StoredConfig config = JGitUtils.readConfig(r);
      StoredConfig config = r.getConfig();
      
      config.unsetSection(Constants.CUSTOM_DEFINED_PROP_SECTION, Constants.CUSTOM_DEFINED_PROP_SUBSECTION);
      config.unsetSection(Constants.CONFIG_GITBLIT, Constants.CONFIG_CUSTOM_FIELDS);
      config.save();
   }
@@ -67,8 +71,8 @@
      RepositoryModel model = GitBlit.self().getRepositoryModel(
            GitBlitSuite.getHelloworldRepository().getDirectory().getName());
      
      assertEquals("\\d", model.customDefinedProperties.get("commitMessageRegEx"));
      assertEquals("Hello", model.customDefinedProperties.get("anotherProperty"));
      assertEquals("\\d", model.customFields.get("commitMessageRegEx"));
      assertEquals("Hello", model.customFields.get("anotherProperty"));
   }
   
   @Test
@@ -76,17 +80,17 @@
      RepositoryModel model = GitBlit.self().getRepositoryModel(
            GitBlitSuite.getHelloworldRepository().getDirectory().getName());
      
      assertEquals("\\d", model.customDefinedProperties.get("commitMessageRegEx"));
      assertEquals("Hello", model.customDefinedProperties.get("anotherProperty"));
      assertEquals("\\d", model.customFields.get("commitMessageRegEx"));
      assertEquals("Hello", model.customFields.get("anotherProperty"));
      
      assertEquals("Hello", model.customDefinedProperties.put("anotherProperty", "GoodBye"));
      assertEquals("Hello", model.customFields.put("anotherProperty", "GoodBye"));
      GitBlit.self().updateRepositoryModel(model.name, model, false);
      
      model = GitBlit.self().getRepositoryModel(
            GitBlitSuite.getHelloworldRepository().getDirectory().getName());
      
      assertEquals("\\d", model.customDefinedProperties.get("commitMessageRegEx"));
      assertEquals("GoodBye", model.customDefinedProperties.get("anotherProperty"));
      assertEquals("\\d", model.customFields.get("commitMessageRegEx"));
      assertEquals("GoodBye", model.customFields.get("anotherProperty"));
   }
}