Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }