package org.dcache.pool.repository.v5;
import org.junit.Test;
import static org.junit.Assert.*;
public class CheckHealthTaskTest
{
private final static String PROPERTY_PREFIX = "-";
private final static String PROPERTY_KEY_VALUE_SEPARATOR = "=";
private final static String PROPERTY_SEPARATOR = " ";
private final static String PROPERTY_INT_KEY = "http-mover-client-idle-timeout";
private final static String PROPERTY_INT_VALUE = "300";
private final static int PROPERTY_INT_EXPECTED = 300;
private final static String PROPERTY_LONG_KEY = "http-mover-connection-max-memory";
private final static String PROPERTY_LONG_VALUE = "4294967297";
private final static long PROPERTY_LONG_EXPECTED = 4294967297L;
private final static String PROPERTY_DOUBLE_KEY = "fault-tolerance";
private final static String PROPERTY_DOUBLE_VALUE = "0.00417";
private final static double PROPERTY_DOUBLE_EXPECTED = 0.00417;
private final static String PROPERTY_STRING_KEY = "xrootd-authn-plugin";
private final static String PROPERTY_STRING_VALUE = "gsi";
private final static String PROPERTY_STRING_EXPECTED = PROPERTY_STRING_VALUE;
@Test
public void testEmptyCommand()
{
String[] command = new CheckHealthTask.Scanner("").scan();
assertEquals(0, command.length);
}
@Test
public void testWithNoArgs()
{
String[] command = new CheckHealthTask.Scanner("command").scan();
assertArrayEquals(new String[]{"command"}, command);
}
@Test
public void testWithArgs()
{
String[] command = new CheckHealthTask.Scanner("command arg1 arg2 arg3 arg4 arg5").scan();
assertArrayEquals(new String[]{"command", "arg1", "arg2", "arg3", "arg4", "arg5"}, command);
}
@Test
public void testDoubleQuoteArgument()
{
String[] command = new CheckHealthTask.Scanner("\"foo bar\" bla").scan();
assertArrayEquals(new String[]{"foo bar", "bla"}, command);
}
@Test
public void testDoubleQuoteArgumentWithEscape()
{
String[] command = new CheckHealthTask.Scanner("foo \"b\\\"a\\\"r\"").scan();
assertArrayEquals(new String[]{"foo", "b\"a\"r"}, command);
}
@Test
public void testDoubleQuoteInsideArgument()
{
String[] command = new CheckHealthTask.Scanner("foo b\"a\"r").scan();
assertArrayEquals(new String[]{"foo", "bar"}, command);
}
@Test
public void testSingleQuoteArgument()
{
String[] command = new CheckHealthTask.Scanner("foo 'bar bla'").scan();
assertArrayEquals(new String[]{"foo", "bar bla"}, command);
}
@Test
public void testEscapedSpaceArgument()
{
String[] command = new CheckHealthTask.Scanner("bar\\ bar").scan();
assertArrayEquals(new String[]{"bar bar"}, command);
}
@Test
public void testEscapedBackslash()
{
String[] command = new CheckHealthTask.Scanner("bar\\\\bar").scan();
assertArrayEquals(new String[]{"bar\\bar"}, command);
}
}