/* * 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 org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.StoredConfig; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.gitblit.Constants; import com.gitblit.models.RepositoryModel; public class RepositoryModelTest extends GitblitUnitTest { private static boolean wasStarted = false; @BeforeClass public static void startGitBlit() throws Exception { wasStarted = GitBlitSuite.startGitblit() == false; } @AfterClass public static void stopGitBlit() throws Exception { if (wasStarted == false) GitBlitSuite.stopGitblit(); } @Before public void initializeConfiguration() throws Exception{ Repository r = GitBlitSuite.getHelloworldRepository(); StoredConfig config = r.getConfig(); 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(); } @After public void teardownConfiguration() throws Exception { Repository r = GitBlitSuite.getHelloworldRepository(); StoredConfig config = r.getConfig(); config.unsetSection(Constants.CONFIG_GITBLIT, Constants.CONFIG_CUSTOM_FIELDS); config.save(); } @Test public void testGetCustomProperty() throws Exception { RepositoryModel model = repositories().getRepositoryModel( GitBlitSuite.getHelloworldRepository().getDirectory().getName()); assertEquals("\\d", model.customFields.get("commitMessageRegEx")); assertEquals("Hello", model.customFields.get("anotherProperty")); } @Test public void testSetCustomProperty() throws Exception { RepositoryModel model = repositories().getRepositoryModel( GitBlitSuite.getHelloworldRepository().getDirectory().getName()); assertEquals("\\d", model.customFields.get("commitMessageRegEx")); assertEquals("Hello", model.customFields.get("anotherProperty")); assertEquals("Hello", model.customFields.put("anotherProperty", "GoodBye")); repositories().updateRepositoryModel(model.name, model, false); model = repositories().getRepositoryModel( GitBlitSuite.getHelloworldRepository().getDirectory().getName()); assertEquals("\\d", model.customFields.get("commitMessageRegEx")); assertEquals("GoodBye", model.customFields.get("anotherProperty")); } }