package jetbrains.buildserver.sonarplugin;
import jetbrains.buildServer.util.OSType;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import static org.assertj.core.api.BDDAssertions.then;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
/**
* Created by Andrey Titov on 6/24/14.
*/
public class SQRBuildServiceTest {
@Test
public void testAddSQRArg() {
final List<String> res = new LinkedList<String>();
SQRBuildService.addSQRArg(res, "-Dkey", null, OSType.UNIX);
assertTrue(res.isEmpty(), "Null values should not be passed to the resulting list. List: " + Arrays.toString(res.toArray()));
SQRBuildService.addSQRArg(res, "-Dkey", "value", OSType.UNIX);
assertTrue(!res.isEmpty(), "'-Dkey=value' pair should be added to the resulting list. Nothing was added.");
assertEquals(res.get(0), "-Dkey=value", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertTrue(res.size() == 1, "Only '-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
SQRBuildService.addSQRArg(res, "-Dkey", "value", OSType.UNIX);
assertEquals(res.get(0), "-Dkey=value", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertEquals(res.get(1), "-Dkey=value", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertTrue(res.size() == 2, "Second '-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
}
@Test
public void testAddSQRArgWin() {
final List<String> res = new LinkedList<String>();
SQRBuildService.addSQRArg(res, "-Dkey", null, OSType.WINDOWS);
assertTrue(res.isEmpty(), "Null values should not be passed to the resulting list. List: " + Arrays.toString(res.toArray()));
SQRBuildService.addSQRArg(res, "-Dkey", "value", OSType.WINDOWS);
assertTrue(!res.isEmpty(), "'-Dkey=value' pair should be added to the resulting list. Nothing was added.");
assertEquals(res.get(0), "\"-Dkey=value\"", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertTrue(res.size() == 1, "Only '-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
SQRBuildService.addSQRArg(res, "-Dkey", "value", OSType.WINDOWS);
assertEquals(res.get(0), "\"-Dkey=value\"", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertEquals(res.get(1), "\"-Dkey=value\"", "'-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
assertTrue(res.size() == 2, "Second '-Dkey=value' pair should be added to the resulting list. List: " + Arrays.toString(res.toArray()));
}
@Test
public void test_project_key_escaping() {
then(SQRBuildService.getProjectKey("")).isEqualTo("");
then(SQRBuildService.getProjectKey("abc")).isEqualTo("abc");
then(SQRBuildService.getProjectKey("123")).isEqualTo("123");
then(SQRBuildService.getProjectKey("a1_-:.")).isEqualTo("a1_-:.");
then(SQRBuildService.getProjectKey("a?a")).isEqualTo("a_a");
then(SQRBuildService.getProjectKey("a?!#$%^&*()a")).isEqualTo("a__________a");
}
}