package simple.escp.data;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import simple.escp.fill.FillJob;
import simple.escp.json.JsonTemplate;
import simple.escp.util.EscpUtil;
import javax.json.JsonObject;
import java.util.List;
import static org.junit.Assert.*;
import static simple.escp.util.EscpUtil.*;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class CustomDataSourceTest {
private final String INIT = EscpUtil.escInitalize();
@Test
public void customDataSource_01() {
String jsonTemplate = "{" +
"\"pageFormat\": {" +
"\"pageLength\": 90" +
"}," +
"\"template\": [" +
"\"Value: ${line1}\"," +
"{" +
"\"table\": \"tables\"," +
"\"columns\": [" +
"{\"source\": \"data\", \"width\": 13}" +
"]" +
"}" +
"]" +
"}";
String jsonData = "{" +
"\"line1\": \"This is line1\"," +
"\"tables\": [" +
"{\"data\": \"This is data1\"}," +
"{\"data\": \"This is data2\"}," +
"{\"data\": \"This is data3\"}" +
"]" +
"}";
DataSources.register(String.class, CustomJsonDataSource.class);
DataSources.register(JsonObject.class, CustomJsonDataSource.class);
String result = new FillJob(new JsonTemplate(jsonTemplate).parse(), DataSources.from(jsonData)).fill();
assertEquals( INIT +
"Value: This is line1" + CRLF +
"data " + CRLF +
"This is data1" + CRLF +
"This is data2" + CRLF +
"This is data3" + CRLF +
CRFF + INIT,
result
);
}
@Test
public void customDataSource_02() {
DataSources.unregister(CustomJsonDataSource.class);
List<DataSources.DataSourceEntry> dataSources = DataSources.DATA_SOURCES;
assertEquals(4, dataSources.size());
}
}