package com.mumux.androidtesting.actions.argument;
import org.json.JSONException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.skyscreamer.jsonassert.JSONAssert;
public class ActionArgumentTest {
private ActionArgument argumentOnOff;
private ActionArgument argumentOnOffWithValue;
private ActionArgument argumentDuration;
private ActionArgument argumentDurationWithValue;
private ActionArgument argumentString;
private ActionArgument argumentStringWithValue;
@Before
public void setup() {
argumentOnOff = new ActionArgument("status", ArgumentType.ON_OFF);
argumentOnOffWithValue = new ActionArgument("status", ArgumentType.ON_OFF);
argumentDuration = new ActionArgument("duration", ArgumentType.INTEGER);
argumentDurationWithValue = new ActionArgument("duration", ArgumentType.INTEGER);
argumentString = new ActionArgument("description", ArgumentType.STRING);
argumentStringWithValue = new ActionArgument("description", ArgumentType.STRING);
argumentOnOffWithValue.setValue(true);
argumentDurationWithValue.setValue(1000);
argumentStringWithValue.setValue("Click");
}
@Test
public void testTestToJson() throws JSONException {
JSONAssert.assertEquals("{\"name\":\"status\",\"type\":\"ON_OFF\"}", argumentOnOff.toJson().toString(), false);
JSONAssert.assertEquals("{\"name\":\"status\",\"value\":true,\"type\":\"ON_OFF\"}", argumentOnOffWithValue.toJson().toString(), false);
JSONAssert.assertEquals("{\"name\":\"duration\",\"type\":\"INTEGER\"}", argumentDuration.toJson().toString(), false);
JSONAssert.assertEquals("{\"name\":\"duration\",\"value\":1000,\"type\":\"INTEGER\"}", argumentDurationWithValue.toJson().toString(), false);
JSONAssert.assertEquals("{\"name\":\"description\",\"type\":\"STRING\"}", argumentString.toJson().toString(), false);
JSONAssert.assertEquals("{\"name\":\"description\",\"value\":\"Click\",\"type\":\"STRING\"}", argumentStringWithValue.toJson().toString(), false);
}
@Test
public void testStringValue() {
Assert.assertNull(argumentOnOff.getStringValue());
Assert.assertEquals("on", argumentOnOffWithValue.getStringValue());
Assert.assertNull(argumentDuration.getStringValue());
Assert.assertEquals("1000", argumentDurationWithValue.getStringValue());
Assert.assertNull(argumentString.getStringValue());
Assert.assertEquals("Click", argumentStringWithValue.getStringValue());
}
@Test
public void testParseValue() {
argumentOnOff.parseValue("on");
Assert.assertEquals("on", argumentOnOff.getStringValue());
argumentDuration.parseValue("1000");
Assert.assertEquals("1000", argumentDuration.getStringValue());
argumentString.parseValue("Click");
Assert.assertEquals("Click", argumentString.getStringValue());
}
}