package org.terracotta.jenkins.plugins.acceleratedbuildnow; import hudson.model.*; import hudson.model.Queue; import hudson.model.queue.CauseOfBlockage; import jenkins.util.NonLocalizable; import org.junit.Assert; import org.junit.Test; import org.jvnet.localizer.Localizable; import org.mockito.Mockito; import java.util.*; import static org.hamcrest.Matchers.*; import static org.mockito.Mockito.when; /** * @author : Anthony Dahanne */ public class AcceleratedBuildNowComparatorTest { @Test public void sortBuildItemsTest() { AbstractProject notImportant = getAbstractProject("notImportant"); AbstractProject notImportantEither = getAbstractProject("notImportantEither"); AbstractProject importantProject = getAbstractProject("importantProject"); List<Queue.BuildableItem> buildableItemList = new ArrayList<Queue.BuildableItem>(); Queue.BuildableItem notImportantBuildableItem = new Queue.BuildableItem(new Queue.WaitingItem(Calendar.getInstance(),notImportant,new ArrayList<Action>())); buildableItemList.add(notImportantBuildableItem); Queue.BuildableItem notImportantEitherBuildableItem = new Queue.BuildableItem(new Queue.WaitingItem(Calendar.getInstance(),notImportantEither,new ArrayList<Action>())); buildableItemList.add(notImportantEitherBuildableItem); Queue.BuildableItem importantBuildableItem = new Queue.BuildableItem(new Queue.WaitingItem(Calendar.getInstance(),importantProject,new ArrayList<Action>())); buildableItemList.add(importantBuildableItem); Assert.assertThat(buildableItemList,contains(notImportantBuildableItem, notImportantEitherBuildableItem, importantBuildableItem)); Comparator<Queue.BuildableItem> acceleratedBuildNowComparator = new AcceleratedBuildNowComparator(importantProject); Collections.sort(buildableItemList, acceleratedBuildNowComparator); Assert.assertThat(buildableItemList,contains(importantBuildableItem, notImportantBuildableItem,notImportantEitherBuildableItem)); } @Test public void sortBuildItemsTest2() { AbstractProject notImportant = getAbstractProject("notImportant"); AbstractProject importantProject = getAbstractProject("importantProject"); List<Queue.BuildableItem> buildableItemList = new ArrayList<Queue.BuildableItem>(); Queue.BuildableItem importantBuildableItem = new Queue.BuildableItem(new Queue.WaitingItem(Calendar.getInstance(),importantProject,new ArrayList<Action>())); buildableItemList.add(importantBuildableItem); Queue.BuildableItem notImportantBuildableItem = new Queue.BuildableItem(new Queue.WaitingItem(Calendar.getInstance(),notImportant,new ArrayList<Action>())); buildableItemList.add(notImportantBuildableItem); Assert.assertThat(buildableItemList,contains(importantBuildableItem, notImportantBuildableItem)); Comparator<Queue.BuildableItem> acceleratedBuildNowComparator = new AcceleratedBuildNowComparator(importantProject); Collections.sort(buildableItemList, acceleratedBuildNowComparator); Assert.assertThat(buildableItemList,contains(importantBuildableItem, notImportantBuildableItem)); } private AbstractProject getAbstractProject(final String importantProject) { AbstractProject abstractProject = Mockito.mock(AbstractProject.class); when(abstractProject.getName()).thenReturn(importantProject); return abstractProject; } }