package cc.blynk.server.core.model.widgets.others;
import cc.blynk.server.core.model.widgets.Widget;
import cc.blynk.server.core.model.widgets.others.rtc.RTC;
import cc.blynk.utils.DateTimeUtils;
import cc.blynk.utils.JsonParser;
import org.junit.Test;
import java.time.ZoneId;
import static org.junit.Assert.*;
/**
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 30.03.16.
*/
public class RTCSerializationTest {
@Test
public void testDeSerializationIsCorrect() {
String widgetString = "{\"id\":1, \"x\":1, \"y\":1, \"type\":\"RTC\", \"tzName\":\"Australia/Sydney\"}";
Widget widget = JsonParser.parseWidget(widgetString);
assertNotNull(widget);
RTC rtc = (RTC) widget;
assertNotNull(rtc.tzName);
assertEquals(ZoneId.of("Australia/Sydney"), rtc.tzName);
}
@Test
public void testDeSerializationIsCorrectForNull() {
String widgetString = "{\"id\":1, \"x\":1, \"y\":1, \"type\":\"RTC\"}";
Widget widget = JsonParser.parseWidget(widgetString);
assertNotNull(widget);
RTC rtc = (RTC) widget;
assertNull(rtc.tzName);
}
@Test
public void testSerializationIsCorrect() throws Exception {
RTC rtc = new RTC();
rtc.tzName = ZoneId.of("Australia/Sydney");
String widgetString = JsonParser.mapper.writeValueAsString(rtc);
assertNotNull(widgetString);
assertEquals("{\"type\":\"RTC\",\"id\":0,\"x\":0,\"y\":0,\"color\":0,\"width\":0,\"height\":0,\"tabId\":0,\"isEnabled\":true,\"isDefaultColor\":false,\"deviceId\":0,\"pin\":-1,\"pwmMode\":false,\"rangeMappingOn\":false,\"min\":0,\"max\":0,\"tzName\":\"Australia/Sydney\"}", widgetString);
}
@Test
public void testSerializationIsCorrectUTC() throws Exception {
RTC rtc = new RTC();
rtc.tzName = DateTimeUtils.UTC;
String widgetString = JsonParser.mapper.writeValueAsString(rtc);
assertNotNull(widgetString);
assertEquals("{\"type\":\"RTC\",\"id\":0,\"x\":0,\"y\":0,\"color\":0,\"width\":0,\"height\":0,\"tabId\":0,\"isEnabled\":true,\"isDefaultColor\":false,\"deviceId\":0,\"pin\":-1,\"pwmMode\":false,\"rangeMappingOn\":false,\"min\":0,\"max\":0,\"tzName\":\"UTC\"}", widgetString);
}
@Test
public void testSerializationIsCorrectForNull() throws Exception {
RTC rtc = new RTC();
rtc.tzName = null;
String widgetString = JsonParser.mapper.writeValueAsString(rtc);
assertNotNull(widgetString);
assertEquals("{\"type\":\"RTC\",\"id\":0,\"x\":0,\"y\":0,\"color\":0,\"width\":0,\"height\":0,\"tabId\":0,\"isEnabled\":true,\"isDefaultColor\":false,\"deviceId\":0,\"pin\":-1,\"pwmMode\":false,\"rangeMappingOn\":false,\"min\":0,\"max\":0}", widgetString);
}
}