/******************************************************************************* * * Copyright (c) 2004-2009 Oracle Corporation. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Kohsuke Kawaguchi, Jorg Heymans * * *******************************************************************************/ package hudson.model; import junit.framework.TestCase; import java.util.GregorianCalendar; import java.util.List; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; /** * @author Kohsuke Kawaguchi */ @RunWith(PowerMockRunner.class) @PrepareForTest({FreeStyleProject.class}) public class RunTest extends TestCase { private List<? extends Run<?,?>.Artifact> createArtifactList(String... paths) { Run<FreeStyleProject,FreeStyleBuild> r = new Run<FreeStyleProject,FreeStyleBuild>(null,new GregorianCalendar()) {}; Run<FreeStyleProject,FreeStyleBuild>.ArtifactList list = r.new ArtifactList(); for (String p : paths) { list.add(r.new Artifact(p,p,p,"n"+list.size())); // Assuming all test inputs don't need urlencoding } list.computeDisplayName(); return list; } public void testArtifactListDisambiguation1() { List<? extends Run<?, ?>.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/j.xml"); assertEquals(a.get(0).getDisplayPath(),"c.xml"); assertEquals(a.get(1).getDisplayPath(),"g.xml"); assertEquals(a.get(2).getDisplayPath(),"j.xml"); } public void testArtifactListDisambiguation2() { List<? extends Run<?, ?>.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/g.xml"); assertEquals(a.get(0).getDisplayPath(),"c.xml"); assertEquals(a.get(1).getDisplayPath(),"f/g.xml"); assertEquals(a.get(2).getDisplayPath(),"i/g.xml"); } public void testArtifactListDisambiguation3() { List<? extends Run<?, ?>.Artifact> a = createArtifactList("a.xml","a/a.xml"); assertEquals(a.get(0).getDisplayPath(),"a.xml"); assertEquals(a.get(1).getDisplayPath(),"a/a.xml"); } // public void testRunCompare() throws IOException { // Calendar cal1 = new GregorianCalendar(); // cal1.setTimeInMillis(2); // Calendar cal2 = new GregorianCalendar(); // cal2.setTimeInMillis(1); // Calendar cal3 = new GregorianCalendar(); // cal3.setTimeInMillis(3); // // FreeStyleProject project = PowerMock.createMock(FreeStyleProject.class); // EasyMock.expect(project.getFullName()).andStubReturn("Project"); // EasyMock.replay(project); // // Run<FreeStyleProject,FreeStyleBuild> run1 = new FreeStyleBuild(project, cal1) {}; // Run<FreeStyleProject,FreeStyleBuild> run2 = new FreeStyleBuild(project, cal2) {}; // Run<FreeStyleProject,FreeStyleBuild> run3 = new FreeStyleBuild(project, cal3) {}; // // RunMap runMap = new RunMap(); // runMap.put(1, run1); // runMap.put(2, run2); // runMap.put(3, run3); // runMap.remove(run2); // } }