package cc.blynk.server.core.model.widgets;
import cc.blynk.server.core.model.Pin;
import cc.blynk.server.core.model.enums.PinType;
import cc.blynk.server.core.model.widgets.controls.RGB;
import cc.blynk.server.core.model.widgets.outputs.ValueDisplay;
import cc.blynk.utils.StringUtils;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 25.12.15.
*/
public class PinGetJsonValueTest {
private static Pin createPinWithValue(String val) {
Pin pin = new Pin();
pin.value = val;
pin.pinType = PinType.VIRTUAL;
pin.pin = 1;
return pin;
}
@Test
public void testSinglePin() {
OnePinWidget onePinWidget = new ValueDisplay();
onePinWidget.value = null;
assertEquals("[]", onePinWidget.getJsonValue());
onePinWidget.value = "1.0";
assertEquals("[\"1.0\"]", onePinWidget.getJsonValue());
}
@Test
public void testMultiPinSplit() {
RGB multiPinWidget = new RGB();
multiPinWidget.pins = null;
multiPinWidget.splitMode = true;
assertEquals("[]", multiPinWidget.getJsonValue());
multiPinWidget.pins = new Pin[3];
multiPinWidget.pins[0] = createPinWithValue("1");
multiPinWidget.pins[1] = createPinWithValue("2");
multiPinWidget.pins[2] = createPinWithValue("3");
assertEquals("[\"1\",\"2\",\"3\"]", multiPinWidget.getJsonValue());
}
@Test
public void testMultiPinMerge() {
RGB multiPinWidget = new RGB();
multiPinWidget.pins = null;
multiPinWidget.splitMode = false;
assertEquals("[]", multiPinWidget.getJsonValue());
multiPinWidget.pins = new Pin[3];
multiPinWidget.pins[0] = createPinWithValue("1 2 3".replaceAll(" ", StringUtils.BODY_SEPARATOR_STRING));
assertEquals("[\"1\",\"2\",\"3\"]", multiPinWidget.getJsonValue());
}
}