/* * The MIT License * * Copyright 2010 Sony Mobile Communications Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package com.sonyericsson.hudson.plugins.gerrit.trigger.mock; import com.sonyericsson.hudson.plugins.gerrit.trigger.VerdictCategory; import com.sonyericsson.hudson.plugins.gerrit.trigger.config.Config; import com.sonyericsson.hudson.plugins.gerrit.trigger.config.IGerritHudsonTriggerConfig; import com.sonyericsson.hudson.plugins.gerrit.trigger.config.ReplicationConfig; import com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.BuildCancellationPolicy; import com.sonymobile.tools.gerrit.gerritevents.dto.events.GerritTriggeredEvent; import com.sonymobile.tools.gerrit.gerritevents.dto.rest.Notify; import com.sonymobile.tools.gerrit.gerritevents.ssh.Authentication; import com.sonymobile.tools.gerrit.gerritevents.watchdog.WatchTimeExceptionData; import hudson.util.Secret; import java.io.File; import java.util.LinkedList; import java.util.List; import net.sf.json.JSONObject; import org.apache.http.auth.Credentials; /** * Mock class of a Config. * @author Robert Sandell <robert.sandell@sonyericsson.com> */ public class MockGerritHudsonTriggerConfig implements IGerritHudsonTriggerConfig { @Override public String getGerritCmdBuildStarted() { return "CHANGE=<CHANGE>" + " CHANGE_ID=<CHANGE_ID>" + " PATCHSET=<PATCHSET>" + " VERIFIED=<VERIFIED>" + " CODEREVIEW=<CODE_REVIEW>" + " NOTIFICATION_LEVEL=<NOTIFICATION_LEVEL>" + " REFSPEC=<REFSPEC> MSG=I started a build." + " BUILDURL=<BUILDURL>" + " STARTED_STATS=<STARTED_STATS>" + " ENV_BRANCH=$BRANCH" + " ENV_CHANGE=$CHANGE" + " ENV_PATCHSET=$PATCHSET" + " ENV_REFSPEC=$REFSPEC" + " ENV_CHANGEURL=$CHANGE_URL"; } @Override public String getGerritCmdBuildSuccessful() { return "CHANGE=<CHANGE>" + " CHANGE_ID=<CHANGE_ID>" + " PATCHSET=<PATCHSET>" + " VERIFIED=<VERIFIED>" + " CODEREVIEW=<CODE_REVIEW>" + " NOTIFICATION_LEVEL=<NOTIFICATION_LEVEL>" + " REFSPEC=<REFSPEC> MSG='Your friendly butler says OK. BS=<BUILDS_STATS>'" + " BUILDURL=<BUILDURL>" + " STARTED_STATS=<STARTED_STATS>" + " ENV_BRANCH=$BRANCH" + " ENV_CHANGE=$CHANGE" + " ENV_PATCHSET=$PATCHSET" + " ENV_REFSPEC=$REFSPEC" + " ENV_CHANGEURL=$CHANGE_URL"; } @Override public String getGerritCmdBuildFailed() { return "CHANGE=<CHANGE>" + " CHANGE_ID=<CHANGE_ID>" + " PATCHSET=<PATCHSET>" + " VERIFIED=-1" + " CODEREVIEW=<CODE_REVIEW>" + " NOTIFICATION_LEVEL=<NOTIFICATION_LEVEL>" + " REFSPEC=<REFSPEC> MSG='A disappointed butler says not OK. BS=<BUILDS_STATS>'" + " BUILDURL=<BUILDURL>" + " STARTED_STATS=<STARTED_STATS>" + " ENV_BRANCH=$BRANCH" + " ENV_CHANGE=$CHANGE" + " ENV_PATCHSET=$PATCHSET" + " ENV_REFSPEC=$REFSPEC" + " ENV_CHANGEURL=$CHANGE_URL"; } @Override public String getGerritCmdBuildUnstable() { return "CHANGE=<CHANGE>" + " CHANGE_ID=<CHANGE_ID>" + " PATCHSET=<PATCHSET>" + " VERIFIED=<VERIFIED>" + " CODEREVIEW=<CODE_REVIEW>" + " NOTIFICATION_LEVEL=<NOTIFICATION_LEVEL>" + " REFSPEC=<REFSPEC> MSG='The build is Unstable. BS=<BUILDS_STATS>'" + " BUILDURL=<BUILDURL>" + " STARTED_STATS=<STARTED_STATS>" + " ENV_BRANCH=$BRANCH" + " ENV_CHANGE=$CHANGE" + " ENV_PATCHSET=$PATCHSET" + " ENV_REFSPEC=$REFSPEC" + " ENV_CHANGEURL=$CHANGE_URL"; } @Override public String getGerritCmdBuildNotBuilt() { // TODO Copy-pasted from getGerritCmdBuildUnstable. return "CHANGE=<CHANGE> PATCHSET=<PATCHSET> VERIFIED=0 MSG=The build is NotBuilt"; } @Override public File getGerritAuthKeyFile() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getGerritAuthKeyFilePassword() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Secret getGerritAuthKeyFileSecretPassword() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getGerritFrontEndUrl() { return "http://gerrit/"; } @Override public String getGerritHostName() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getGerritSshPort() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getGerritProxy() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getGerritUserName() { throw new UnsupportedOperationException("Not supported yet."); } @Override public String getGerritEMail() { throw new UnsupportedOperationException("Not supported yet."); } @Override public Notify getNotificationLevel() { return Notify.ALL; } @Override public int getNumberOfReceivingWorkerThreads() { throw new UnsupportedOperationException("Not supported yet."); } @Override public int getNumberOfSendingWorkerThreads() { return 1; } @Override public void setNumberOfSendingWorkerThreads(int numberOfSendingWorkerThreads) { return; } @Override public void setValues(JSONObject form) { //Empty } //CS IGNORE MagicNumber FOR NEXT 200 LINES. REASON: Mock object. private Integer gerritBuildStartedCodeReviewValue = new Integer(2); private Integer gerritBuildSuccessfulCodeReviewValue = new Integer(4); private Integer gerritBuildFailedCodeReviewValue = new Integer(-2); private Integer gerritBuildUnstableCodeReviewValue = new Integer(-4); private Integer gerritBuildNotBuiltCodeReviewValue = new Integer(-6); private Integer gerritBuildStartedVerifiedValue = new Integer(1); private Integer gerritBuildSuccessfulVerifiedValue = new Integer(3); private Integer gerritBuildFailedVerifiedValue = new Integer(-1); private Integer gerritBuildUnstableVerifiedValue = new Integer(-3); private Integer gerritBuildNotBuiltVerifiedValue = new Integer(-5); @Override public Integer getGerritBuildStartedVerifiedValue() { return gerritBuildStartedVerifiedValue; } @Override public Integer getGerritBuildSuccessfulVerifiedValue() { return gerritBuildSuccessfulVerifiedValue; } @Override public Integer getGerritBuildFailedVerifiedValue() { return gerritBuildFailedVerifiedValue; } @Override public Integer getGerritBuildUnstableVerifiedValue() { return gerritBuildUnstableVerifiedValue; } @Override public Integer getGerritBuildNotBuiltVerifiedValue() { return gerritBuildNotBuiltVerifiedValue; } @Override public Integer getGerritBuildStartedCodeReviewValue() { return gerritBuildStartedCodeReviewValue; } @Override public Integer getGerritBuildSuccessfulCodeReviewValue() { return gerritBuildSuccessfulCodeReviewValue; } @Override public Integer getGerritBuildFailedCodeReviewValue() { return gerritBuildFailedCodeReviewValue; } @Override public Integer getGerritBuildUnstableCodeReviewValue() { return gerritBuildUnstableCodeReviewValue; } @Override public Integer getGerritBuildNotBuiltCodeReviewValue() { return gerritBuildNotBuiltCodeReviewValue; } /** * Set value. * @param gerritBuildSuccessfulCodeReviewValue value to set. */ public void setGerritBuildSuccessfulCodeReviewValue(Integer gerritBuildSuccessfulCodeReviewValue) { this.gerritBuildSuccessfulCodeReviewValue = gerritBuildSuccessfulCodeReviewValue; } /** * Set value. * @param gerritBuildStartedCodeReviewValue value to set. */ public void setGerritBuildStartedCodeReviewValue(Integer gerritBuildStartedCodeReviewValue) { this.gerritBuildStartedCodeReviewValue = gerritBuildStartedCodeReviewValue; } /** * Set value. * @param gerritBuildFailedCodeReviewValue value to set. */ public void setGerritBuildFailedCodeReviewValue(Integer gerritBuildFailedCodeReviewValue) { this.gerritBuildFailedCodeReviewValue = gerritBuildFailedCodeReviewValue; } /** * Set value. * @param gerritBuildUnstableCodeReviewValue value to set. */ public void setGerritBuildUnstableCodeReviewValue(Integer gerritBuildUnstableCodeReviewValue) { this.gerritBuildUnstableCodeReviewValue = gerritBuildUnstableCodeReviewValue; } /** * Set value. * @param gerritBuildNotBuiltCodeReviewValue value to set. */ public void setGerritBuildNotBuiltCodeReviewValue(Integer gerritBuildNotBuiltCodeReviewValue) { this.gerritBuildNotBuiltCodeReviewValue = gerritBuildNotBuiltCodeReviewValue; } /** * Set value. * @param gerritBuildStartedVerifiedValue value to set. */ public void setGerritBuildStartedVerifiedValue(Integer gerritBuildStartedVerifiedValue) { this.gerritBuildStartedVerifiedValue = gerritBuildStartedVerifiedValue; } /** * Set value. * @param gerritBuildSuccessfulVerifiedValue value to set. */ public void setGerritBuildSuccessfulVerifiedValue(Integer gerritBuildSuccessfulVerifiedValue) { this.gerritBuildSuccessfulVerifiedValue = gerritBuildSuccessfulVerifiedValue; } /** * Set value. * @param gerritBuildFailedVerifiedValue value to set. */ public void setGerritBuildFailedVerifiedValue(Integer gerritBuildFailedVerifiedValue) { this.gerritBuildFailedVerifiedValue = gerritBuildFailedVerifiedValue; } /** * Set value. * @param gerritBuildUnstableVerifiedValue value to set. */ public void setGerritBuildUnstableVerifiedValue(Integer gerritBuildUnstableVerifiedValue) { this.gerritBuildUnstableVerifiedValue = gerritBuildUnstableVerifiedValue; } /** * Set value. * @param gerritBuildNotBuiltVerifiedValue value to set. */ public void setGerritBuildNotBuiltVerifiedValue(Integer gerritBuildNotBuiltVerifiedValue) { this.gerritBuildNotBuiltVerifiedValue = gerritBuildNotBuiltVerifiedValue; } @Override public String getGerritFrontEndUrlFor(String number, String revision) { return "http://gerrit/" + number; } @Override public String getGerritFrontEndUrlFor(GerritTriggeredEvent event) { return "http://gerrit/1"; } @Override public List<VerdictCategory> getCategories() { return new LinkedList<VerdictCategory>(); } @Override public void setCategories(List<VerdictCategory> categories) { } @Override public boolean isEnableManualTrigger() { return true; } @Override public Authentication getGerritAuthentication() { return new Authentication(getGerritAuthKeyFile(), getGerritUserName(), getGerritAuthKeyFilePassword()); } @Override public int getBuildScheduleDelay() { return 3; } @Override public int getDynamicConfigRefreshInterval() { return 30; } @Override public int getProjectListFetchDelay() { return Config.DEFAULT_PROJECT_LIST_FETCH_DELAY; } @Override public int getProjectListRefreshInterval() { return Config.DEFAULT_PROJECT_LIST_REFRESH_INTERVAL; } @Override public boolean isEnableProjectAutoCompletion() { return Config.DEFAULT_ENABLE_PROJECT_AUTO_COMPLETION; } @Override public boolean hasDefaultValues() { return false; } @Override public boolean isGerritBuildCurrentPatchesOnly() { return true; } @Override public BuildCancellationPolicy getBuildCurrentPatchesOnly() { return new BuildCancellationPolicy(); } @Override public boolean isEnablePluginMessages() { return true; } @Override public boolean isUseRestApi() { return false; } @Override public int getWatchdogTimeoutMinutes() { return 0; } @Override public int getWatchdogTimeoutSeconds() { return 0; } @Override public WatchTimeExceptionData getExceptionData() { return new WatchTimeExceptionData(new int[]{}, new LinkedList<WatchTimeExceptionData.TimeSpan>()); } @Override public Secret getGerritHttpSecretPassword() { return null; } @Override public String getGerritHttpPassword() { return ""; } @Override public String getGerritHttpUserName() { return ""; } @Override public Credentials getHttpCredentials() { return null; } @Override public ReplicationConfig getReplicationConfig() { return null; } @Override public boolean isRestCodeReview() { return true; } @Override public boolean isRestVerified() { return true; } }