public void CreateSubmissionFromJSON() { DeathRecordSubmission submission = BaseMessage.Parse <DeathRecordSubmission>(FixtureStream("fixtures/json/DeathRecordSubmission.json")); Assert.Equal("2018-02-20T16:48:06-05:00", submission.DeathRecord.DateOfDeathPronouncement); Assert.Equal("http://nchs.cdc.gov/vrdr_submission", submission.MessageType); Assert.Equal("2018MA000001", submission.NCHSIdentifier); Assert.Equal((uint)1, submission.CertificateNumber); Assert.Equal((uint)2018, submission.DeathYear); Assert.Equal("42", submission.StateAuxiliaryIdentifier); submission = BaseMessage.Parse <DeathRecordSubmission>(FixtureStream("fixtures/json/DeathRecordSubmissionNoIdentifiers.json")); Assert.Equal("2018-02-20T16:48:06-05:00", submission.DeathRecord.DateOfDeathPronouncement); Assert.Equal("http://nchs.cdc.gov/vrdr_submission", submission.MessageType); Assert.Null(submission.CertificateNumber); Assert.Null(submission.StateAuxiliaryIdentifier); Assert.Null(submission.NCHSIdentifier); MessageParseException ex = Assert.Throws <MessageParseException>(() => BaseMessage.Parse(FixtureStream("fixtures/json/EmptySubmission.json"))); Assert.Equal("Error processing DeathRecord entry in the message: Failed to find a Bundle Entry containing a Resource of type Bundle", ex.Message); ExtractionErrorMessage errMsg = ex.CreateExtractionErrorMessage(); Assert.Equal("http://nchs.cdc.gov/vrdr_submission", errMsg.MessageSource); Assert.Equal("nightingale", errMsg.MessageDestination); Assert.Equal("a9d66d2e-2480-4e8d-bab3-4e4c761da1b7", errMsg.FailedMessageId); Assert.Equal("2018MA000001", errMsg.NCHSIdentifier); Assert.Equal((uint)1, errMsg.CertificateNumber); Assert.Equal((uint)2018, errMsg.DeathYear); Assert.Equal("42", errMsg.StateAuxiliaryIdentifier); ex = Assert.Throws <MessageParseException>(() => BaseMessage.Parse <AckMessage>(FixtureStream("fixtures/json/DeathRecordSubmission.json"))); Assert.Equal("The supplied message was of type VRDR.DeathRecordSubmission, expected VRDR.AckMessage or a subclass", ex.Message); }
public void CreateExtractionErrorFromJson() { ExtractionErrorMessage err = BaseMessage.Parse <ExtractionErrorMessage>(FixtureStream("fixtures/json/ExtractionErrorMessage.json")); Assert.Equal("http://nchs.cdc.gov/vrdr_extraction_error", err.MessageType); Assert.Equal((uint)1, err.CertificateNumber); Assert.Equal("42", err.StateAuxiliaryIdentifier); Assert.Equal("2018MA000001", err.NCHSIdentifier); var issues = err.Issues; Assert.Equal(2, (int)issues.Count); Assert.Equal(OperationOutcome.IssueSeverity.Fatal, issues[0].Severity); Assert.Equal(OperationOutcome.IssueType.Invalid, issues[0].Type); Assert.Equal("The message was invalid", issues[0].Description); Assert.Equal(OperationOutcome.IssueSeverity.Warning, issues[1].Severity); Assert.Equal(OperationOutcome.IssueType.Expired, issues[1].Type); Assert.Equal("The message was very old", issues[1].Description); }
public void CreateExtractionErrorForMessage() { DeathRecordSubmission submission = BaseMessage.Parse <DeathRecordSubmission>(FixtureStream("fixtures/json/DeathRecordSubmission.json")); ExtractionErrorMessage err = new ExtractionErrorMessage(submission); Assert.Equal("http://nchs.cdc.gov/vrdr_extraction_error", err.MessageType); Assert.Equal(submission.MessageId, err.FailedMessageId); Assert.Equal(submission.MessageSource, err.MessageDestination); Assert.Equal(submission.StateAuxiliaryIdentifier, err.StateAuxiliaryIdentifier); Assert.Equal(submission.CertificateNumber, err.CertificateNumber); Assert.Equal(submission.NCHSIdentifier, err.NCHSIdentifier); Assert.Empty(err.Issues); var issues = new List <Issue>(); var issue = new Issue(OperationOutcome.IssueSeverity.Fatal, OperationOutcome.IssueType.Invalid, "The message was invalid"); issues.Add(issue); issue = new Issue(OperationOutcome.IssueSeverity.Warning, OperationOutcome.IssueType.Expired, "The message was very old"); issues.Add(issue); err.Issues = issues; issues = err.Issues; Assert.Equal(2, (int)issues.Count); Assert.Equal(OperationOutcome.IssueSeverity.Fatal, issues[0].Severity); Assert.Equal(OperationOutcome.IssueType.Invalid, issues[0].Type); Assert.Equal("The message was invalid", issues[0].Description); Assert.Equal(OperationOutcome.IssueSeverity.Warning, issues[1].Severity); Assert.Equal(OperationOutcome.IssueType.Expired, issues[1].Type); Assert.Equal("The message was very old", issues[1].Description); submission = null; err = new ExtractionErrorMessage(submission); Assert.Equal("http://nchs.cdc.gov/vrdr_extraction_error", err.MessageType); Assert.Null(err.FailedMessageId); Assert.Null(err.MessageDestination); Assert.Null(err.CertificateNumber); Assert.Null(err.StateAuxiliaryIdentifier); Assert.Null(err.NCHSIdentifier); Assert.Empty(err.Issues); }