use of bio.terra.model.RelationshipModel in project jade-data-repo by DataBiosphere.
the class SnapshotService method makeRelationshipModelFromRelationship.
private RelationshipModel makeRelationshipModelFromRelationship(Relationship relationship) {
RelationshipTermModel fromModel = new RelationshipTermModel().table(relationship.getFromTable().getName()).column(relationship.getFromColumn().getName());
RelationshipTermModel toModel = new RelationshipTermModel().table(relationship.getToTable().getName()).column(relationship.getToColumn().getName());
return new RelationshipModel().name(relationship.getName()).from(fromModel).to(toModel);
}
use of bio.terra.model.RelationshipModel in project jade-data-repo by DataBiosphere.
the class SnapshotConnectedTest method testMinimal.
@Test
public void testMinimal() throws Exception {
DatasetSummaryModel datasetMinimalSummary = setupMinimalDataset();
String datasetName = PDAO_PREFIX + datasetMinimalSummary.getName();
BigQueryProject bigQueryProject = TestUtils.bigQueryProjectForDatasetName(datasetDao, dataLocationService, datasetMinimalSummary.getName());
long datasetParticipants = queryForCount(datasetName, "participant", bigQueryProject);
assertThat("dataset participants loaded properly", datasetParticipants, equalTo(2L));
long datasetSamples = queryForCount(datasetName, "sample", bigQueryProject);
assertThat("dataset samples loaded properly", datasetSamples, equalTo(5L));
SnapshotRequestModel snapshotRequest = makeSnapshotTestRequest(datasetMinimalSummary, "dataset-minimal-snapshot.json");
MockHttpServletResponse response = performCreateSnapshot(snapshotRequest, "");
SnapshotSummaryModel summaryModel = validateSnapshotCreated(snapshotRequest, response);
SnapshotModel snapshotModel = getTestSnapshot(summaryModel.getId(), snapshotRequest, datasetMinimalSummary);
List<TableModel> tables = snapshotModel.getTables();
Optional<TableModel> participantTable = tables.stream().filter(t -> t.getName().equals("participant")).findFirst();
Optional<TableModel> sampleTable = tables.stream().filter(t -> t.getName().equals("sample")).findFirst();
assertThat("participant table exists", participantTable.isPresent(), equalTo(true));
assertThat("sample table exists", sampleTable.isPresent(), equalTo(true));
long snapshotParticipants = queryForCount(summaryModel.getName(), "participant", bigQueryProject);
assertThat("dataset participants loaded properly", snapshotParticipants, equalTo(1L));
assertThat("participant row count matches expectation", participantTable.get().getRowCount(), equalTo(1));
long snapshotSamples = queryForCount(summaryModel.getName(), "sample", bigQueryProject);
assertThat("dataset samples loaded properly", snapshotSamples, equalTo(2L));
assertThat("sample row count matches expectation", sampleTable.get().getRowCount(), equalTo(2));
List<RelationshipModel> relationships = snapshotModel.getRelationships();
assertThat("a relationship comes back", relationships.size(), equalTo(1));
RelationshipModel relationshipModel = relationships.get(0);
assertThat("relationship name is right", relationshipModel.getName(), equalTo("participant_sample"));
assertThat("from table is right", relationshipModel.getFrom().getTable(), equalTo("participant"));
assertThat("from column is right", relationshipModel.getFrom().getColumn(), equalTo("id"));
assertThat("to table is right", relationshipModel.getTo().getTable(), equalTo("sample"));
assertThat("to column is right", relationshipModel.getTo().getColumn(), equalTo("participant_id"));
}
use of bio.terra.model.RelationshipModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testInvalidRelationshipTermTableColumn.
@Test
public void testInvalidRelationshipTermTableColumn() throws Exception {
// participant_id is part of the sample table, not participant
RelationshipTermModel mismatchedTerm = new RelationshipTermModel().table("participant").column("participant_id");
RelationshipModel mismatchedRelationship = new RelationshipModel().name("participant_sample").from(mismatchedTerm).to(buildSampleTerm());
DatasetRequestModel req = buildDatasetRequest();
req.getSchema().relationships(Collections.singletonList(mismatchedRelationship));
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "InvalidRelationshipTermTableColumn" });
}
use of bio.terra.model.RelationshipModel in project jade-data-repo by DataBiosphere.
the class DatasetValidationsTest method testDuplicateRelationshipNames.
@Test
public void testDuplicateRelationshipNames() throws Exception {
DatasetRequestModel req = buildDatasetRequest();
RelationshipModel relationship = buildParticipantSampleRelationship();
req.getSchema().relationships(Arrays.asList(relationship, relationship));
ErrorModel errorModel = expectBadDatasetCreateRequest(req);
checkValidationErrorModel(errorModel, new String[] { "DuplicateRelationshipNames" });
}
Aggregations