use of bio.terra.model.ColumnModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testIntPartitionWithBadRange.
@Test
public void testIntPartitionWithBadRange() throws Exception {
ColumnModel column = new ColumnModel().name("column").datatype("int64");
TableModel table = new TableModel().name("table").columns(Collections.singletonList(column)).partitionMode(TableModel.PartitionModeEnum.INT).intPartitionOptions(new IntPartitionOptionsModel().column(column.getName()).min(5L).max(2L).interval(-1L));
DatasetRequestModel req = buildDatasetRequest();
req.getSchema().tables(Collections.singletonList(table)).relationships(Collections.emptyList()).assets(Collections.emptyList());
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "InvalidIntPartitionRange", "InvalidIntPartitionInterval" });
}
use of bio.terra.model.ColumnModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testIntPartitionWithMismatchedType.
@Test
public void testIntPartitionWithMismatchedType() throws Exception {
ColumnModel column = new ColumnModel().name("column").datatype("timestamp");
TableModel table = new TableModel().name("table").columns(Collections.singletonList(column)).partitionMode(TableModel.PartitionModeEnum.INT).intPartitionOptions(new IntPartitionOptionsModel().column(column.getName()).min(1L).max(2L).interval(1L));
DatasetRequestModel req = buildDatasetRequest();
req.getSchema().tables(Collections.singletonList(table)).relationships(Collections.emptyList()).assets(Collections.emptyList());
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "InvalidIntPartitionColumnType" });
}
use of bio.terra.model.ColumnModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testArrayAssetRootColumn.
@Test
public void testArrayAssetRootColumn() throws Exception {
ColumnModel arrayColumn = new ColumnModel().name("array_data").arrayOf(true).datatype("string");
DatasetRequestModel req = buildDatasetRequest();
req.getSchema().getTables().stream().filter(table -> table.getName().equals("sample")).findFirst().ifPresent(sampleTable -> {
ArrayList<ColumnModel> columns = new ArrayList<>(sampleTable.getColumns());
columns.add(arrayColumn);
sampleTable.setColumns(columns);
});
AssetTableModel assetTable = new AssetTableModel().name("sample").columns(Collections.emptyList());
AssetModel asset = new AssetModel().name("bad_root").rootTable("sample").rootColumn(arrayColumn.getName()).tables(Collections.singletonList(assetTable)).follow(Collections.singletonList("participant_sample"));
req.getSchema().setAssets(Collections.singletonList(asset));
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "InvalidArrayRootColumn" });
}
use of bio.terra.model.ColumnModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testIntPartitionTooManyPartitions.
@Test
public void testIntPartitionTooManyPartitions() throws Exception {
ColumnModel column = new ColumnModel().name("column").datatype("int64");
TableModel table = new TableModel().name("table").columns(Collections.singletonList(column)).partitionMode(TableModel.PartitionModeEnum.INT).intPartitionOptions(new IntPartitionOptionsModel().column(column.getName()).min(0L).max(4001L).interval(1L));
DatasetRequestModel req = buildDatasetRequest();
req.getSchema().tables(Collections.singletonList(table)).relationships(Collections.emptyList()).assets(Collections.emptyList());
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "TooManyIntPartitions" });
}
Aggregations