/*************************GO-LICENSE-START********************************* * Copyright 2014 ThoughtWorks, Inc. * * 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. *************************GO-LICENSE-END***********************************/ package com.thoughtworks.go.domain.materials; import com.thoughtworks.go.config.materials.ScmMaterial; import com.thoughtworks.go.config.materials.SubprocessExecutionContext; import com.thoughtworks.go.domain.MaterialInstance; import com.thoughtworks.go.util.command.ConsoleOutputStreamConsumer; import com.thoughtworks.go.util.command.UrlArgument; import org.joda.time.DateTime; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; public class TestingMaterial extends ScmMaterial { public static final Date TWO_DAYS_AGO_CHECKIN = new DateTime().minusDays(2).toDate(); public static final String MOD_TYPE = "svn"; public static final String MOD_REVISION = "98"; public static final String TYPE = "TestingMaterial"; private String url; public TestingMaterial() { super(TYPE); } public TestingMaterial(TestingMaterialConfig config) { this(); this.url = config.getUrl(); } public List<Modification> latestModification(File baseDir, final SubprocessExecutionContext execCtx) { throw new RuntimeException("NOT USED"); } public List<Modification> modificationsSince(File baseDir, Revision revision, final SubprocessExecutionContext execCtx) { return multipleModificationList(); } private List<Modification> multipleModificationList() { List<Modification> modifications = new ArrayList<>(); Date today = new Date(); Date yesterday = new DateTime().minusDays(1).toDate(); Modification modification1 = new Modification("lgao", "Fixing the not checked in files", "foo@bar.com", yesterday, "99"); modification1.createModifiedFile("build.xml", "\\build", ModifiedAction.added); modifications.add(modification1); Modification modification2 = new Modification("committer", "Added the README file", "foo@bar.com", today, "100"); modification2.createModifiedFile("oldbuild.xml", "\\build", ModifiedAction.added); modifications.add(modification2); Modification modification3 = new Modification("committer <html />", "Added the README file with <html />", "foo@bar.com", today, "101"); modification3.createModifiedFile("README.txt", "\\build", ModifiedAction.added); modifications.add(modification3); return modifications; } public MaterialInstance createMaterialInstance() { return new TestingMaterialInstance(url, "FLYWEIGHTNAME"); } public void updateTo(ConsoleOutputStreamConsumer outputStreamConsumer, File baseDir, RevisionContext revisionContext, final SubprocessExecutionContext execCtx) { } public void setUrl(String url) { this.url = url; } public String getUserName() { return null; } public String getPassword() { return null; } @Override public String getEncryptedPassword() { return null; } public boolean isCheckExternals() { return false; } public String getUrl() { return url; } @Override protected UrlArgument getUrlArgument() { return new UrlArgument(url); } public String getLongDescription() { return String.format("Url: %s", url); } public ValidationBean checkConnection(final SubprocessExecutionContext execCtx) { return null; } protected String getLocation() { return getUrl(); } public String getTypeForDisplay() { return TYPE; } public Class getInstanceType() { return TestingMaterialInstance.class; } protected void appendCriteria(Map<String, Object> parameters) { } protected void appendAttributes(Map<String, Object> parameters) { } @Override public MaterialConfig config() { return new TestingMaterialConfig(url); } }