New VCWG Test Suite

Hi all,

We now have a new test suite that should be more maintainable than the
last one. We are capable of generating implementation reports now, a
simple one is here:

https://w3c.github.io/vc-test-suite/implementations/

The general idea behind the new test suite is that it makes a call out
to a "VC Document Generator". The input is a proto-VC and the output is
either an error code (there was something wrong w/ the proto-VC), or a
valid VC Document. Each test basically asks the question: "Can you
generate a valid VC document from this input?". Then the test suite
tests the VC document for document conformance.

Implementing a system that outputs a set of documents that passes the
test suite should be a couple of days of work for a single engineer.

The other good news here is that we can use this same test suite model
for the DID spec.

Almost all of the Basic Concept normative requirements are tested (still
need to add the Advanced tests). It took about a day to rewrite the
whole test suite infrastructure and an additional day to write about
half of the tests (so, the infrastructure seems manageable).

Here's what the output looks like when you run the tests today (the '✓'
mark means that the test is passing):

  Document
    @context
      ✓ MUST be one or more URIs
      ✓ MUST be one or more URIs (negative)
      ✓ first value MUST be https://w3.org/2018/credentials/v1
      ✓ first value MUST be https://w3.org/2018/credentials/v1 (negative)
    `id` properties
      ✓ MUST be a single URI
      ✓ MUST be a single URI (negative)
    `type` properties
      ✓ MUST be one or more URIs
      ✓ MUST be one or more URIs (negative)
      ✓ for Credential MUST be `VerifiableCredential` plus specific type
      ✓ for Credential MUST be `VerifiableCredential` plus specific type
(negative)
    `issuer` property
      ✓ MUST be a single URI
      ✓ MUST be a single URI (negative - not URI)
      ✓ MUST be a single URI (negative - Array)
    `issuanceDate` property
      ✓ MUST be an ISO8601 datetime
      ✓ MUST be an ISO8601 datetime (negative - ISO8601)
      ✓ MUST be an ISO8601 datetime (negative - Array)
    `proof` property
      ✓ MUST be present
      ✓ MUST be present (negative - missing)
    `expirationDate` property
      ✓ MUST be an ISO8601 datetime
      ✓ MUST be an ISO8601 datetime (negative - ISO8601)
      ✓ MUST be an ISO8601 datetime (negative - Array)
    `credentialStatus` property
      ✓ MUST include `id` and `type`
      ✓ MUST include `id` and `type` (negative - missing `id`)
      ✓ MUST include `id` and `type` (negative - missing `type`)

I can cover most of this on the call today and answer any questions that
folks may have.

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Veres One Decentralized Identifier Blockchain Launches
https://tinyurl.com/veres-one-launches

Received on Tuesday, 8 January 2019 14:36:43 UTC