DDR Simple API test class - Draft 1

Attached is a simple Java class that can be used to exercise the
majority of the methods in a compliant Java implementation of the
proposed DDR Simple API.

I have written this first draft as a contribution to next week's
face-to-face meeting in France in which we expect to be informed of
multiple implementations. Code based on the draft I am submitting can be
used to verify that key use cases for a Java implementation are behaving
in conformance with the specification. Following the recent publication
of what the DDWG members believe is a stable and worthy specification,
there is now a keen interest in seeing implementations that claim to
conform to this specification, so that we can make progress towards a
formal Recommendation. Such claims can be put to the test with the aid
of the attached code.

Note, this draft does not validate the error use cases, where exceptions
are defined in the specification. I expect this to be in an update.

The test currently relies only on the Core Vocabulary, and to provide
the necessary predictability of the underlying data, a "virtual" device
is being considered, whose identity can be determined solely by the User
Agent header. For the purpose of the test, implementations should
recognise this virtual device, and their underlying data should be
populated with the expected values (as indicated by the constants
present in the test source).

This is not an exhaustive test, nor a system test, nor a performance
test. It is not a test of the correctness of the underlying data. All
such tests would be out of scope for the API itself. The purpose of the
test suite captured in this draft class is to exercise the API in a
manner consistent with the expected use cases for implementations that
have heeded the suggestion to support the Core Vocabulary, in order to
raise confidence that, from a functional point of view, the
implementations conform to the specification. Multiple claims that are
so supported may be sufficient evidence of the viability of this new
technology.

This contribution also anticipates a likely expectation from observers
that progress towards a formal Recommendation should be accompanied,
insofar as possible and practical, reasonable and independent support
for any claims of conformance.

Finally, the tests are implemented in Java but the API is designed to be
language-neutral (as far as possible). Unfortunately time constraints
prevent me from providing similar tests in other languages, but
contributions would be welcome (after the tests have been agreed by the
group).

---Rotan (chair).

 <<DDRSimpleAPITester.java>> 

Received on Wednesday, 11 June 2008 03:01:49 UTC