This page lists development user stories. It is intended to be development-centric; rather than the clinical user stories listed on the User Stories page.

Many of the stories have an implicit actor or user of a developer using an API, so read "As a developer, I wish to use the [Java|C#] library to ...."

RFC5322 and MIME Component Stories


See http://github.com/mikel/mail/tree/master/spec/mail/ for an exhaustive list of behavior driven development testable specs against the Ruby mail library.

DNS CERT Resolver Stories


The following stories assume a general DNS resolver library that can retrieve DNS RRs. Note that these stories do not add up to a general purpose CERT resolver; they only support features explicitly required in the specification

  • Parse a CERT RR, extracting the component fields.
  • Extract a Certificate object from a CERT RR (Base 64 decode the field and read the DER representation)
  • Perform a TCP-based DNS query (note that DNS often uses UDP)
  • Resolve a CERT record by email address (single valid X509 CERT record exists for the email address)
  • Resolve a CERT record by email address (single valid X509 CERT record exists for the wildcard for the address)
  • Resolve a CERT record by email address (multiple valid X509 CERT records exist for the email address)
  • Resolve a CERT record by email address (multiple X509 and non X509 CERT records exist for the email address)
  • Resolve a CERT record, error conditions (timeout, incomplete or incorrect information returned, invalid certificate record)

Agent


See C# Agent unit tests

XD* Metadata


  • Basic metadata objects, with properties and sub-objects covering the core XD* metadata elements
    • Per element, serialize as ebXML
    • Per element, unserialize as ebXML

See IHE documentation and Keith's blog posting for details

Suggest "storyizing" and unit testing on a per property basis, starting with the XDS required properties.

Message Object with Document Set


Encapsulation of a message, with sender, receivers, documents, metadata

  • Basic message, object, with sender, receivers, contained metadata object
  • Support adding, reading documents and associated metadata
  • Serialize/deserialize as pure RFC5322 (email message with multipart/mixed and Base64 encoded attachments
  • Serialize/deserialize as XDM zip file (autocreate HTML file)
  • Serialize/deserialize as RFC5322 with XDM attachment