@Test
public void testUpdateIndividualInfo() throws CatalogException {
IndividualManager individualManager = catalogManager.getIndividualManager();
QueryResult<Individual> individualQueryResult = individualManager.create(studyFqn, new Individual().setId("Test")
.setDateOfBirth("19870214"), QueryOptions.empty(), sessionIdUser);
assertEquals(1, individualQueryResult.getNumResults());
assertEquals("Test", individualQueryResult.first().getId());
assertEquals("19870214", individualQueryResult.first().getDateOfBirth());
QueryResult<Individual> update = individualManager.update(studyFqn, individualQueryResult.first().getId(),
new ObjectMap(IndividualDBAdaptor.QueryParams.DATE_OF_BIRTH.key() , null),
QueryOptions.empty(), sessionIdUser);
assertEquals("", update.first().getDateOfBirth());
update = individualManager.update(studyFqn, individualQueryResult.first().getId(),
new ObjectMap(IndividualDBAdaptor.QueryParams.DATE_OF_BIRTH.key(), "19870214"), QueryOptions.empty(), sessionIdUser);
assertEquals("19870214", update.first().getDateOfBirth());
update = individualManager.update(studyFqn,
String.valueOf(individualQueryResult.first().getId()),
new ObjectMap(IndividualDBAdaptor.QueryParams.ATTRIBUTES.key(), Collections.singletonMap("key", "value")), QueryOptions.empty(), sessionIdUser);
assertEquals("value", update.first().getAttributes().get("key"));
update = individualManager.update(studyFqn,
String.valueOf(individualQueryResult.first().getId()),
new ObjectMap(IndividualDBAdaptor.QueryParams.ATTRIBUTES.key(), Collections.singletonMap("key2", "value2")), QueryOptions.empty(), sessionIdUser);
assertEquals("value", update.first().getAttributes().get("key"));
assertEquals("value2", update.first().getAttributes().get("key2"));
thrown.expect(CatalogException.class);
thrown.expectMessage("Invalid date of birth format");
individualManager.update(studyFqn, individualQueryResult.first().getId(),
new ObjectMap(IndividualDBAdaptor.QueryParams.DATE_OF_BIRTH.key(), "198421"), QueryOptions.empty(), sessionIdUser);
}