package cc.blynk.server.core.model.widgets.ui;
import cc.blynk.server.core.model.widgets.ui.table.Column;
import cc.blynk.server.core.model.widgets.ui.table.Row;
import cc.blynk.server.core.model.widgets.ui.table.Table;
import cc.blynk.utils.JsonParser;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 8/20/16.
*/
public class TableSerializationTest {
@Test
public void testTableNoRowsJson() throws Exception {
Table table = new Table();
table.columns = new Column[3];
table.columns[0] = new Column();
table.columns[0].name = "indicator";
table.columns[1] = new Column();
table.columns[1].name = "name";
table.columns[2] = new Column();
table.columns[2].name = "value";
String json = JsonParser.mapper.writeValueAsString(table);
assertEquals("{\"type\":\"TABLE\",\"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,\"columns\":[{\"name\":\"indicator\"},{\"name\":\"name\"},{\"name\":\"value\"}],\"rows\":[],\"currentRowIndex\":0,\"isReoderingAllowed\":false,\"isClickableRows\":false}", json);
}
@Test
public void testTableSingleRowJson() throws Exception {
Table table = new Table();
table.columns = new Column[3];
table.columns[0] = new Column();
table.columns[0].name = "indicator";
table.columns[1] = new Column();
table.columns[1].name = "name";
table.columns[2] = new Column();
table.columns[2].name = "value";
Row row = new Row();
row.name = "Adskiy trash";
row.value = "6:33";
row.isSelected = false;
row.id = 1;
table.rows.add(row);
String json = JsonParser.mapper.writeValueAsString(table);
assertEquals("{\"type\":\"TABLE\",\"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,\"columns\":[{\"name\":\"indicator\"},{\"name\":\"name\"},{\"name\":\"value\"}],\"rows\":[{\"id\":1,\"name\":\"Adskiy trash\",\"value\":\"6:33\",\"isSelected\":false}],\"currentRowIndex\":0,\"isReoderingAllowed\":false,\"isClickableRows\":false}", json);
}
@Test
public void testTableMultiRowJson() throws Exception {
Table table = new Table();
table.columns = new Column[3];
table.columns[0] = new Column();
table.columns[0].name = "indicator";
table.columns[1] = new Column();
table.columns[1].name = "name";
table.columns[2] = new Column();
table.columns[2].name = "value";
Row row = new Row();
row.name = "Adskiy trash";
row.value = "6:33";
row.isSelected = false;
row.id = 1;
table.rows.add(row);
Row row2 = new Row();
row2.name = "Adskiy trash2";
row2.value = "6:332";
row2.isSelected = false;
row2.id = 2;
table.rows.add(row2);
String json = JsonParser.mapper.writeValueAsString(table);
assertEquals("{\"type\":\"TABLE\",\"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,\"columns\":[{\"name\":\"indicator\"},{\"name\":\"name\"},{\"name\":\"value\"}],\"rows\":[{\"id\":1,\"name\":\"Adskiy trash\",\"value\":\"6:33\",\"isSelected\":false},{\"id\":2,\"name\":\"Adskiy trash2\",\"value\":\"6:332\",\"isSelected\":false}],\"currentRowIndex\":0,\"isReoderingAllowed\":false,\"isClickableRows\":false}", json);
}
}