public void StoresConsentHeaderWhenAddingConsent() { var subjectIdentifier = Random.String(); var(personId, studySubjectEntity, studySubject) = CreateStudySubject(subjectIdentifier); var dateGiven = Random.Date().Date; var consent = CreateConsentRepository(updateContext) .AddConsent( new Common.Consent.Consent(studySubject, dateGiven, personId, null) ); updateContext.SaveChanges(); var consentEntity = readContext.Set <ConsentEntity>() .Include(_ => _.GivenBy) .Include(_ => _.StudySubject) .ThenInclude(_ => _.Study) .SingleOrDefault(_ => _.Id == consent.Id); Assert.Equal(studySubjectEntity.Id, consentEntity.StudySubject.Id); Assert.Equal(personId.Id, consentEntity.GivenBy.Id); Assert.Equal(dateGiven, consentEntity.DateProvided); Assert.Null(consentEntity.DateWithdrawn); }
public void SavesConsent() { var consentContext = Server.Host.Services.GetService <ConsentContext>(); var study = consentContext.Add(new StudyEntity { Name = Random.String() }).Entity; var person = consentContext.Add(new PersonEntity()).Entity; consentContext.SaveChanges(); var result = ApiClient.PutConsent( new ConsentSpecification { StudyId = study.Id, DateGiven = Random.Date().Date, GivenBy = person.Id, PersonId = person.Id, SubjectIdentifier = Random.String(15), Evidence = new [] { Evidences.ClientMedwayDto(status: "Competent", givenBy: "Self", takenBy: "Jackson Pollock"), } }); Assert.NotNull(result); var newConsentId = Assert.IsType <long>(result); var consentEntity = consentContext.Set <ConsentEntity>() .Include(_ => _.StudySubject) .ThenInclude(_ => _.Study) .Include(_ => _.StudySubject) .ThenInclude(_ => _.Person) .Include(_ => _.GivenBy) .Single(_ => _.Id == newConsentId); Assert.NotNull(consentEntity); var evidence = consentContext.Set <GivenEvidenceEntity>().SingleOrDefault(_ => _.Consent.Id == newConsentId); using (new AssertionScope()) { evidence.Should().NotBeNull(); evidence.Value.Should().Be( "<medway><competent-status>Competent</competent-status><consent-given-by>Self</consent-given-by><consent-taken-by>Jackson Pollock</consent-taken-by></medway>"); evidence.Type.Should().Be("medway"); } }
public void StoresConsentGivenEvidenceWhenAddingConsent() { var subjectIdentifier = Random.String(); var(personId, _, studySubject) = CreateStudySubject(subjectIdentifier); var dateGiven = Random.Date().Date; var evidence = Evidences.MedwayEvidence(competencyStatus: "Competent", takenBy: "Nurse Randall"); var marshalledEvidence = new CompositeIdentifierXmlMarshaller <Evidence, EvidenceDefinition>(KnownEvidence.Medway) .MarshallToXml(evidence) .ToString(SaveOptions.DisableFormatting); var consent = CreateConsentRepository(updateContext) .AddConsent( new Common.Consent.Consent(studySubject, dateGiven, personId, new [] { evidence }) ); updateContext.SaveChanges(); var savedConsent = readContext.Set <ConsentEntity>().AsNoTracking() .Where(_ => _.Id == consent.Id) .Include(_ => _.GivenEvidence) .SingleOrDefault(); savedConsent.Should().NotBeNull(); savedConsent.GivenEvidence.Should().ContainSingle(); var storedEvidence = savedConsent.GivenEvidence.SingleOrDefault(); storedEvidence.Should().NotBeNull().And.BeOfType <GivenEvidenceEntity>(); Assert.Equal(KnownEvidence.Medway.SystemName, storedEvidence.Type); Assert.Equal(marshalledEvidence, storedEvidence.Value); Assert.NotNull(storedEvidence.Consent); }