package org.jfrog.build.api;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.jfrog.build.api.release.Promotion;
import org.testng.annotations.Test;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import static org.testng.Assert.*;
/**
* @author Noam Y. Tenne
*/
@Test
public class PromotionTest {
public void testDefaultValues() {
Promotion promotion = new Promotion();
assertNull(promotion.getStatus(), "Unexpected default status.");
assertNull(promotion.getComment(), "Unexpected default comment.");
assertNull(promotion.getCiUser(), "Unexpected default ci user.");
assertNull(promotion.getTimestamp(), "Unexpected default timestamp.");
assertFalse(promotion.isDryRun(), "Unexpected default dry run state.");
assertNull(promotion.getTargetRepo(), "Unexpected default target repo.");
assertNull(promotion.getSourceRepo(), "Unexpected default source repo.");
assertFalse(promotion.isCopy(), "Unexpected default copy state.");
assertTrue(promotion.isArtifacts(), "Unexpected default artifacts state.");
assertFalse(promotion.isDependencies(), "Unexpected default dependencies state.");
assertNull(promotion.getScopes(), "Unexpected default scopes.");
assertNull(promotion.getProperties(), "Unexpected default properties.");
}
public void testConstructor() {
Set<String> scopes = Sets.newHashSet();
Map<String, Collection<String>> properties = Maps.newHashMap();
Promotion promotion = new Promotion(Promotion.ROLLED_BACK, "comment", "ciUser", "timestamp",
true, "targetRepo", "sourceRepo", false, true, false, scopes, properties, false);
assertEquals(promotion.getStatus(), Promotion.ROLLED_BACK, "Unexpected status.");
assertEquals(promotion.getComment(), "comment", "Unexpected comment.");
assertEquals(promotion.getCiUser(), "ciUser", "Unexpected ci user.");
assertEquals(promotion.getTimestamp(), "timestamp", "Unexpected timestamp.");
assertTrue(promotion.isDryRun(), "Unexpected dry run state.");
assertEquals(promotion.getTargetRepo(), "targetRepo", "Unexpected target repo.");
assertEquals(promotion.getSourceRepo(), "sourceRepo", "Unexpected source repo.");
assertFalse(promotion.isCopy(), "Unexpected copy state.");
assertTrue(promotion.isArtifacts(), "Unexpected artifacts state.");
assertFalse(promotion.isDependencies(), "Unexpected dependencies state.");
assertEquals(promotion.getScopes(), scopes, "Unexpected scopes.");
assertEquals(promotion.getProperties(), properties, "Unexpected properties.");
assertFalse(promotion.isFailFast(), "Unexpected fail-fast state.");
}
public void testSetters() {
Set<String> scopes = Sets.newHashSet();
Map<String, Collection<String>> properties = Maps.newHashMap();
Promotion promotion = new Promotion();
promotion.setStatus(Promotion.ROLLED_BACK);
promotion.setComment("comment");
promotion.setCiUser("ciUser");
promotion.setTimestamp("timestamp");
promotion.setDryRun(true);
promotion.setTargetRepo("targetRepo");
promotion.setSourceRepo("sourceRepo");
promotion.setCopy(false);
promotion.setArtifacts(true);
promotion.setDependencies(false);
promotion.setScopes(scopes);
promotion.setProperties(properties);
promotion.setFailFast(false);
assertEquals(promotion.getStatus(), Promotion.ROLLED_BACK, "Unexpected status.");
assertEquals(promotion.getComment(), "comment", "Unexpected comment.");
assertEquals(promotion.getCiUser(), "ciUser", "Unexpected ci user.");
assertEquals(promotion.getTimestamp(), "timestamp", "Unexpected timestamp.");
assertTrue(promotion.isDryRun(), "Unexpected dry run state.");
assertEquals(promotion.getTargetRepo(), "targetRepo", "Unexpected target repo.");
assertEquals(promotion.getSourceRepo(), "sourceRepo", "Unexpected source repo.");
assertFalse(promotion.isCopy(), "Unexpected copy state.");
assertTrue(promotion.isArtifacts(), "Unexpected artifacts state.");
assertFalse(promotion.isDependencies(), "Unexpected dependencies state.");
assertEquals(promotion.getScopes(), scopes, "Unexpected scopes.");
assertEquals(promotion.getProperties(), properties, "Unexpected properties.");
assertFalse(promotion.isFailFast(), "Unexpected fail-fast state.");
}
public void testNullTimestampDateGetter() {
Promotion promotion = new Promotion(null, null, null, null, true, null, null, true, true, true, null, null, false);
assertNull(promotion.getTimestampDate(), "No timestamp was set. Should have received null");
}
public void testTimestampDateGetters() {
SimpleDateFormat format = new SimpleDateFormat(Build.STARTED_FORMAT);
Date timestampDate = new Date();
Promotion promotion = new Promotion(null, null, null, format.format(timestampDate), true, null, null, true, true,
true, null, null, false);
assertEquals(promotion.getTimestampDate(), timestampDate, "Unexpected timestamp date.");
}
}