package org.activityinfo.model.type.expr;
import org.activityinfo.model.form.FormField;
import org.activityinfo.model.resource.Record;
import org.activityinfo.model.resource.ResourceId;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.*;
public class CalculatedFieldTypeTest {
@Test
public void serialization() {
FormField field = new FormField(ResourceId.generateId());
field.setType(new CalculatedFieldType("A+B"));
Record record = field.asRecord();
System.out.println(record);
FormField read = FormField.fromRecord(record);
assertThat(read.getType(), instanceOf(CalculatedFieldType.class));
CalculatedFieldType readType = (CalculatedFieldType) read.getType();
assertThat(readType.getExpression().getExpression(), equalTo("A+B"));
}
@Test
public void emptySerialization() {
FormField field = new FormField(ResourceId.generateId());
field.setType(new CalculatedFieldType());
Record record = field.asRecord();
System.out.println(record);
FormField read = FormField.fromRecord(record);
assertThat(read.getType(), instanceOf(CalculatedFieldType.class));
CalculatedFieldType readType = (CalculatedFieldType) read.getType();
assertThat(readType.getExpression(), nullValue());
}
}