public FormSourceSyncImpl(FormStorageProvider formCatalog, DatabaseProvider databaseProvider, int userId) { this(formCatalog, new NullFormScanCache(), databaseProvider, userId); }
@GwtIncompatible public ColumnSetBuilder(FormStorageProvider catalog, FormSupervisor supervisor) { this(ServerColumnFactory.INSTANCE, catalog, new NullFormScanCache(), supervisor); }
public ColumnSet query(QueryModel queryModel) { ColumnSetBuilder builder = new ColumnSetBuilder(this, new NullFormScanCache(), new NullFormSupervisor()); return builder.build(queryModel); }
@Before public void setUp() { helper.setUp(); this.cache = new NullFormScanCache(); }
private ColumnSet query(QueryModel queryModel) { ColumnSetBuilder builder = new ColumnSetBuilder(testingCatalog, new NullFormScanCache(), new NullFormSupervisor()); return builder.build(queryModel); }
private ColumnSet query(QueryModel queryModel) { ColumnSetBuilder builder = new ColumnSetBuilder(testingCatalog, new NullFormScanCache(), new NullFormSupervisor()); return builder.build(queryModel); }
@Before public void setup() { catalog = new TestingStorageProvider(); builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); intakeForm = catalog.getIntakeForm(); }
@Override public Promise<ColumnSet> queryTableColumns(QueryModel query) { if(!connected) { return offlineResult(); } ColumnSetBuilder columnSetBuilder = new ColumnSetBuilder(storageProvider, new NullFormScanCache(), new NullFormSupervisor()); ColumnSet columnSet = columnSetBuilder.build(query); return Promise.resolved(columnSet); }
@Test public void invalidArityTest() { TestingStorageProvider catalog = new TestingStorageProvider(); IntakeForm intakeForm = catalog.getIntakeForm(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); QueryModel queryModel = new QueryModel(intakeForm.getFormId()); queryModel.selectExpr("YEARFRAC(TODAY())").as("age"); ColumnSet columnSet = builder.build(queryModel); ColumnView age = columnSet.getColumnView("age"); assertThat(age.numRows(), equalTo(IntakeForm.ROW_COUNT)); System.out.println(age); }
@Test public void enumIdTests() { TestingStorageProvider catalog = new TestingStorageProvider(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); QueryModel queryModel = new QueryModel(EmptyForm.FORM_ID); queryModel.selectField(EmptyForm.ENUM_FIELD_ID).as("emptyEnum"); queryModel.selectField(EmptyForm.POP_ENUM_FIELD_ID).as("populatedEnum"); ColumnSet columnSet = builder.build(queryModel); ColumnView emptyEnum = columnSet.getColumnView("emptyEnum"); ColumnView populatedEnum = columnSet.getColumnView("populatedEnum"); //// Standard Enum Id Checks // Null check on empty set first assertThat(emptyEnum.get(0), equalTo(null)); assertThat(((EnumColumnView) emptyEnum).getId(0), equalTo(null)); // Value check on populated set assertThat(populatedEnum.get(0).toString(), equalTo("One")); assertThat(((EnumColumnView) populatedEnum).getId(0), equalTo(EmptyForm.ENUM_ONE_ID.asString())); //// Selected Row Enum Id Checks ColumnView emptySelectedRow = emptyEnum.select(new int[]{0}); ColumnView populatedSelectedRow = populatedEnum.select(new int[]{0}); // Null check on empty set first assertThat(emptySelectedRow.get(0), equalTo(null)); assertThat(((EnumColumnView) emptySelectedRow).getId(0), equalTo(null)); // Value check on populated set assertThat(populatedSelectedRow.get(0).toString(), equalTo("One")); assertThat(((EnumColumnView) populatedSelectedRow).getId(0), equalTo(EmptyForm.ENUM_ONE_ID.asString())); }
@Test public void enumRefTests() { TestingStorageProvider catalog = new TestingStorageProvider(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); IntakeForm intakeForm = catalog.getIntakeForm(); QueryModel queryModel = new QueryModel(intakeForm.getFormId()); queryModel.selectField(intakeForm.getNationalityFieldId()).as("nationality"); queryModel.selectExpr(intakeForm.getNationalityFieldId() + "==" + "\"" + intakeForm.getPalestinianId() + "\"").as("palestinian"); queryModel.selectExpr("\"" + intakeForm.getPalestinianId() + "\"" + "==" + intakeForm.getNationalityFieldId()).as("palestinianInverse"); ColumnSet columnSet = builder.build(queryModel); ColumnView nationality = columnSet.getColumnView("nationality"); ColumnView palestinian = columnSet.getColumnView("palestinian"); ColumnView palestinianInverse = columnSet.getColumnView("palestinianInverse"); assertThat(nationality.get(1).toString(), equalTo(NAT_PAL)); assertThat(Boolean.valueOf(palestinian.get(1).toString()), equalTo(true)); assertThat(Boolean.valueOf(palestinianInverse.get(1).toString()), equalTo(true)); }
@Test public void multiEnumColumnLabels() { TestingStorageProvider catalog = new TestingStorageProvider(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor());
@Test public void multiEnumColumnIds() { TestingStorageProvider catalog = new TestingStorageProvider(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor());
@Test public void minMaxFunction() { TestingStorageProvider catalog = new TestingStorageProvider(); ClinicForm clinicForm = catalog.getClinicForm(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); QueryModel queryModel = new QueryModel(clinicForm.getFormId()); queryModel.selectRecordId().as("id"); queryModel.selectExpr("MIN(NUM_CONSULT)").as("min"); queryModel.selectExpr("MAX(NUM_CONSULT)").as("max"); ColumnSet columnSet = builder.build(queryModel); ColumnView id = columnSet.getColumnView("id"); ColumnView min = columnSet.getColumnView("min"); ColumnView max = columnSet.getColumnView("max"); System.out.println(columnSet.getColumnView("id")); System.out.println(min); System.out.println(max); assertThat(id.getString(0), equalTo("c0")); assertThat(min.getDouble(0), equalTo(56.0)); assertThat(max.getDouble(0), equalTo(247.0)); } }
@Test public void testFloorToday() { TestingStorageProvider catalog = new TestingStorageProvider(); IntakeForm intakeForm = catalog.getIntakeForm(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); QueryModel queryModel = new QueryModel(intakeForm.getFormId()); queryModel.selectExpr("TODAY()").as("today"); queryModel.selectExpr("FLOOR(YEARFRAC(\"2017-05-05\", DOB))").as("ageFloored"); queryModel.selectExpr("FLOOR(1.5)").as("floor"); queryModel.selectExpr("DOB").as("dob"); ColumnSet columnSet = builder.build(queryModel); ColumnView floor = columnSet.getColumnView("floor"); ColumnView ageFloored = columnSet.getColumnView("ageFloored"); assertThat(floor.numRows(),equalTo(intakeForm.getRecords().size())); assertThat(floor.getDouble(0),equalTo(1.0)); assertThat(ageFloored.getDouble(0),equalTo(45.0)); assertThat(ageFloored.getDouble(3),equalTo(29.0)); System.out.println(ageFloored); }
@Test public void testToday() { TestingStorageProvider catalog = new TestingStorageProvider(); IntakeForm intakeForm = catalog.getIntakeForm(); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); QueryModel queryModel = new QueryModel(intakeForm.getFormId()); queryModel.selectExpr("TODAY()").as("today"); queryModel.selectExpr("YEARFRAC(TODAY(), DOB)").as("age"); queryModel.selectExpr("DOB").as("dob"); ColumnSet columnSet = builder.build(queryModel); ColumnView today = columnSet.getColumnView("today"); ColumnView age = columnSet.getColumnView("age"); ColumnView dob = columnSet.getColumnView("dob"); for (int i = 0; i < columnSet.getNumRows(); i++) { if(dob.getString(i) != null) { double ageInYears = age.getDouble(i); System.out.println(dob.get(i) + " " + ageInYears); if (Double.isNaN(ageInYears)) { throw new AssertionError(); } } } System.out.println(age); }
@Test public void circularReference() throws Exception { final FormClass formClass = new FormClass(ResourceId.valueOf("XYZ")); formClass.addField(ResourceId.valueOf("FA")) .setCode("A") .setLabel("Field A") .setType(new CalculatedFieldType("B")); formClass.addField(ResourceId.valueOf("FB")) .setCode("B") .setLabel("Field B") .setType(new CalculatedFieldType("A")); FormStorageProviderStub catalog = new FormStorageProviderStub(); catalog.addForm(formClass).withRowCount(10); ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor()); FormScanBatch batch = builder.createNewBatch(); QueryEvaluator evaluator = new QueryEvaluator(FilterLevel.BASE, catalog.getTree(formClass.getId()), batch); Slot<ColumnView> a = evaluator.evaluateExpression(new SymbolNode("A")); Slot<ColumnView> aPlusOne = evaluator.evaluateExpression(FormulaParser.parse("A+1")); builder.execute(batch); assertThat(a.get().numRows(), equalTo(10)); assertThat(a.get().getString(0), nullValue()); assertThat(aPlusOne.get().getString(0), equalTo(Double.toString(1d))); assertThat(aPlusOne.get().getDouble(0), equalTo(1d)); }