public void CompositeMarshaller_CreatesMarshallersForInnerDefinitions() { var(composite, _, _) = CompositeIdentifierDefinition(); var marshaller = new CompositeIdentifierXmlMarshaller <PersonIdentifier, IdentifierDefinition>(composite); Assert.Contains("string", marshaller.Marshallers.Marshallers); Assert.Contains("date", marshaller.Marshallers.Marshallers); }
public void CompositeMarshaller_MarshalsFromXmlCorrectly() { var(compositeIdentifierDefinition, stringIdentifierDefinition, dateIdentifierDefinition) = CompositeIdentifierDefinition(); var marshaller = new CompositeIdentifierXmlMarshaller <PersonIdentifier, IdentifierDefinition>(compositeIdentifierDefinition); var identifier = marshaller.MarshallFromXml(XElement.Parse("<composite><string>A Name</string><date>1872-04-17T00:00:00</date></composite>")); identifier.Value.As <CompositeIdentifierValue <PersonIdentifier> >().Identifiers.Should() .Contain(new PersonIdentifier(new SimpleIdentifierValue("A Name"), stringIdentifierDefinition)) .And .Contain(new PersonIdentifier(new SimpleIdentifierValue(17.April(1872)), dateIdentifierDefinition)) .And .HaveCount(2); }
public void CompositeMarshaller_MarshalsToXmlCorrectly() { var(compositeIdentifierDefinition, stringIdentifierDefinition, dateIdentifierDefinition) = CompositeIdentifierDefinition(); var identifier = new PersonIdentifier( new CompositeIdentifierValue <PersonIdentifier>( new [] { new PersonIdentifier(new SimpleIdentifierValue("A Name"), stringIdentifierDefinition), new PersonIdentifier(new SimpleIdentifierValue(17.April(1872)), dateIdentifierDefinition) }), compositeIdentifierDefinition); var marshaller = new CompositeIdentifierXmlMarshaller <PersonIdentifier, IdentifierDefinition>(compositeIdentifierDefinition); var xml = marshaller.MarshallToXml(identifier); Assert.Equal( "<composite><string>A Name</string><date>1872-04-17T00:00:00</date></composite>", xml.ToString(SaveOptions.DisableFormatting)); }
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); }