package org.jvnet.hudson.plugins.shelveproject;
import hudson.model.Hudson;
import org.apache.commons.io.FileUtils;
import org.jvnet.hudson.test.HudsonTestCase;
import java.io.File;
import java.io.IOException;
import java.util.List;
@SuppressWarnings({"ResultOfMethodCallIgnored"})
public class ShelvedProjectsActionTest
extends HudsonTestCase
{
private ShelvedProjectsAction shelvedProjectsAction;
private File shelvedProjectsDir;
public void setUp()
throws Exception
{
super.setUp();
shelvedProjectsAction = new ShelvedProjectsAction();
shelvedProjectsDir = new File( Hudson.getInstance().getRootDir(), "shelvedProjects" );
shelvedProjectsDir.mkdirs();
}
public void tearDown()
throws Exception
{
super.tearDown();
shelvedProjectsDir.delete();
}
public void testGetShelvedProjects_shouldReturnEmptyListWhenNoArchivedProjectsFound()
{
assertTrue( "No archived projects should have been found.",
shelvedProjectsAction.getShelvedProjects().isEmpty() );
}
public void testGetShelvedProjects_shouldReturnShelvedProject()
throws IOException
{
FileUtils.touch( new File( shelvedProjectsDir, "blackMesaProject-1262634114828.zip" ) );
List<ShelvedProject> shelvedProjects = shelvedProjectsAction.getShelvedProjects();
assertEquals( "Should have found one archived projects.", 1, shelvedProjects.size() );
assertEquals( "Should have found one archived projects.", "blackMesaProject",
shelvedProjects.get( 0 ).getProjectName() );
assertEquals( "Should have found one archived projects.", 1262634114828L,
shelvedProjects.get( 0 ).getTimestamp() );
assertEquals( "Should have found one archived projects.", "blackMesaProject-1262634114828.zip",
shelvedProjects.get( 0 ).getArchive().getName() );
assertNotNull( "Should have set formatted date.", shelvedProjects.get( 0 ).getFormatedDate() );
}
public void testGetShelvedProjects_shouldReturnMultipleArchivedProjects()
throws IOException
{
FileUtils.touch( new File( shelvedProjectsDir, "appretureScience-1262634014828.zip" ) );
FileUtils.touch( new File( shelvedProjectsDir, "blackMesaProject-1262634114828.zip" ) );
List<ShelvedProject> shelvedProjects = shelvedProjectsAction.getShelvedProjects();
assertEquals( "Should have found two archived projects.", 2, shelvedProjects.size() );
}
public void testGetShelvedProjects_shouldHandleProjectNamesWithHyphens()
throws IOException
{
FileUtils.touch( new File( shelvedProjectsDir, "appreture-science-1262634014828.zip" ) );
List<ShelvedProject> shelvedProjects = shelvedProjectsAction.getShelvedProjects();
assertEquals( "Should have found two archived projects.", 1, shelvedProjects.size() );
assertEquals( "Should have correctly gotten project name, even one with hypens.", "appreture-science",
shelvedProjects.get( 0 ).getProjectName() );
assertEquals( "Should have correctly gotten timestamp, even when project name has hypens.", 1262634014828L,
shelvedProjects.get( 0 ).getTimestamp() );
}
}