Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add new tests
  • Loading branch information
grzesiek2010 committed Oct 14, 2025
commit 3fd8aaed9dc27b87ce1a83ee4ccf607339c16491
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,72 @@ public void saveTosWithIncorrectNamespaceAreIgnored() throws XFormParser.ParseEx
FormDef formDef = parser.parse(null);
assertThat(formDef.getExtras().get(EntityFormExtra.class).getSaveTos(), is(empty()));
}

@Test
public void whenVersionIs2025_1_andFeatureIsEnabled_parsesCorrectly() throws XFormParser.ParseException {
String updateVersion = "2025.1.0";

XFormsElement form = XFormsElement.html(
asList(
new Pair<>("entities", "http://www.opendatakit.org/xforms/entities")
),
head(
title("Create entity form"),
model(asList(new Pair<>("entities:entities-version", updateVersion)),
mainInstance(
t("data id=\"update-entity-form\"",
t("name"),
t("meta",
t("entity dataset=\"people\" update=\"1\" id=\"17\"")
)
)
),
bind("/data/name").type("string").withAttribute("entities", "saveto", "name")
)
),
body(
input("/data/name")
)
);

EntityFormParseProcessor processor = new EntityFormParseProcessor(() -> true);
XFormParser parser = new XFormParser(new InputStreamReader(new ByteArrayInputStream(form.asXml().getBytes())));
parser.addProcessor(processor);

FormDef formDef = parser.parse(null);
assertThat(formDef, notNullValue());
}

@Test(expected = UnrecognizedEntityVersionException.class)
public void whenVersionIs2025_1_andFeatureIsDisabled_throwsException() throws XFormParser.ParseException {
String updateVersion = "2025.1.0";

XFormsElement form = XFormsElement.html(
asList(
new Pair<>("entities", "http://www.opendatakit.org/xforms/entities")
),
head(
title("Create entity form"),
model(asList(new Pair<>("entities:entities-version", updateVersion)),
mainInstance(
t("data id=\"update-entity-form\"",
t("name"),
t("meta",
t("entity dataset=\"people\" update=\"1\" id=\"17\"")
)
)
),
bind("/data/name").type("string").withAttribute("entities", "saveto", "name")
)
),
body(
input("/data/name")
)
);

EntityFormParseProcessor processor = new EntityFormParseProcessor(() -> false);
XFormParser parser = new XFormParser(new InputStreamReader(new ByteArrayInputStream(form.asXml().getBytes())));
parser.addProcessor(processor);
parser.parse(null);
}
}