package com.hubspot.singularity;
import java.util.Collection;
import java.util.TimeZone;
import org.junit.Assert;
import org.junit.Test;
import com.google.common.base.Optional;
public class SingularityS3Test {
@Test
public void testS3FormatHelper() throws Exception {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
SingularityTaskId taskId = new SingularityTaskId("rid", "did", 1, 1, "host", "rack");
long start = 1414610537117L; // Wed, 29 Oct 2014 19:22:17 GMT
long end = 1415724215000L; // Tue, 11 Nov 2014 16:43:35 GMT
Collection<String> prefixes = SingularityS3FormatHelper.getS3KeyPrefixes("%Y/%m/%taskId", taskId, Optional.<String> absent(), start, end, "default");
Assert.assertTrue(prefixes.size() == 2);
end = 1447265861000L; // Tue, 11 Nov 2015 16:43:35 GMT
prefixes = SingularityS3FormatHelper.getS3KeyPrefixes("%Y/%taskId", taskId, Optional.<String> absent(), start, end, "default");
Assert.assertTrue(prefixes.size() == 2);
start = 1415750399999L;
end = 1415771999000L;
prefixes = SingularityS3FormatHelper.getS3KeyPrefixes("%Y/%m/%d/%taskId", taskId, Optional.<String> absent(), start, end, "default");
Assert.assertTrue(prefixes.size() == 2);
prefixes = SingularityS3FormatHelper.getS3KeyPrefixes("%requestId/%group/%Y/%m", taskId, Optional.<String> absent(), start, end, "groupName");
Assert.assertEquals("rid/groupName/2014/11", prefixes.iterator().next());
final long NOV2014TUES11 = 1415724215000L;
Assert.assertEquals("wat-hostname", SingularityS3FormatHelper.getKey("wat-%host", 0, System.currentTimeMillis(), "filename", "hostname"));
Assert.assertEquals("file1.txt-2", SingularityS3FormatHelper.getKey("%filename-%index", 2, System.currentTimeMillis(), "file1.txt", "hostname"));
Assert.assertEquals("yo-2014-11-" + NOV2014TUES11 + "-.txt", SingularityS3FormatHelper.getKey("yo-%Y-%m-%s-%fileext", 2, NOV2014TUES11, "file1.txt", "hostname"));
String guid = SingularityS3FormatHelper.getKey("yo-%guid", 2, NOV2014TUES11, "file1.txt", "hostname");
Assert.assertTrue(guid.startsWith("yo-"));
Assert.assertTrue(guid.length() > 10);
String guid2 = SingularityS3FormatHelper.getKey("yo-%guid", 2, NOV2014TUES11, "file1.txt", "hostname");
Assert.assertTrue(!guid.equals(guid2));
}
}