/*
|
* Copyright 2013 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.mock;
|
|
import java.io.File;
|
import java.util.Date;
|
import java.util.Map;
|
import java.util.TimeZone;
|
|
import com.gitblit.Constants;
|
import com.gitblit.IStoredSettings;
|
import com.gitblit.manager.IRuntimeManager;
|
import com.gitblit.models.ServerSettings;
|
import com.gitblit.models.ServerStatus;
|
import com.gitblit.models.SettingModel;
|
|
public class MockRuntimeManager implements IRuntimeManager {
|
|
File baseFolder;
|
|
IStoredSettings settings;
|
|
ServerStatus serverStatus;
|
|
ServerSettings serverSettings;
|
|
public MockRuntimeManager() {
|
this(new MemorySettings());
|
}
|
|
public MockRuntimeManager(Map<String, Object> settings) {
|
this(new MemorySettings(settings));
|
}
|
|
public MockRuntimeManager(IStoredSettings settings) {
|
this.settings = settings;
|
|
this.serverStatus = new ServerStatus(true);
|
this.serverStatus.servletContainer = "MockServer";
|
|
this.serverSettings = new ServerSettings();
|
}
|
|
@Override
|
public void setBaseFolder(File folder) {
|
this.baseFolder = folder;
|
}
|
|
@Override
|
public File getBaseFolder() {
|
return baseFolder;
|
}
|
|
@Override
|
public TimeZone getTimezone() {
|
return TimeZone.getDefault();
|
}
|
|
@Override
|
public boolean isServingRepositories() {
|
return true;
|
}
|
|
@Override
|
public boolean isDebugMode() {
|
return true;
|
}
|
|
@Override
|
public Date getBootDate() {
|
return serverStatus.bootDate;
|
}
|
|
@Override
|
public ServerStatus getStatus() {
|
// update heap memory status
|
serverStatus.heapAllocated = Runtime.getRuntime().totalMemory();
|
serverStatus.heapFree = Runtime.getRuntime().freeMemory();
|
return serverStatus;
|
}
|
|
@Override
|
public ServerSettings getSettingsModel() {
|
// ensure that the current values are updated in the setting models
|
for (String key : settings.getAllKeys(null)) {
|
SettingModel setting = serverSettings.get(key);
|
if (setting == null) {
|
// unreferenced setting, create a setting model
|
setting = new SettingModel();
|
setting.name = key;
|
serverSettings.add(setting);
|
}
|
setting.currentValue = settings.getString(key, "");
|
}
|
return serverSettings;
|
}
|
|
@Override
|
public File getFileOrFolder(String key, String defaultFileOrFolder) {
|
String fileOrFolder = settings.getString(key, defaultFileOrFolder);
|
return getFileOrFolder(fileOrFolder);
|
}
|
|
@Override
|
public File getFileOrFolder(String fileOrFolder) {
|
return com.gitblit.utils.FileUtils.resolveParameter(Constants.baseFolder$,
|
baseFolder, fileOrFolder);
|
}
|
|
@Override
|
public IStoredSettings getSettings() {
|
return settings;
|
}
|
|
@Override
|
public boolean updateSettings(Map<String, String> updatedSettings) {
|
return settings.saveSettings(updatedSettings);
|
}
|
|
}
|