truth0/truth — pull request #14 by cgruber (2012-03-25 17:11:00+00:00)
Title: Re-work iterablesubject, collectionsubject and provide for inOrder();

This change moves around some contract between iterablesubject and collectionsubject, and standardizes on the "contains()" method with overloads for multiple objects. The semantics of contains(with multiples) are that it contains all of the provided elements, in any order. One can specify that the containment predicate should mean that it contains these methods in the given order by adding .inOrder(); after the contains.

This does involve duplicate resolution of contains, once when contains() is invoked, and once when inOrder() is invoked, but since the latter is a stricter check such that both tests must be true if the latter is true, it's semantically correct, and allows for a clearer read by the test maintainer.