anchor.diff:  
   uses
     Classes, SysUtils, fpcunit, testregistry,
  +  James.Data,
     James.Data.Clss;
   
   type
  
positive.code:     procedure Counter;
    end;
  
  implementation
  
  { TDataStreamTest }
  
  
negative.code:   );
  end;
  
  { TDataConstraintsTest }
  
  procedure TDataConstraintsTest.ReceiveConstraint;
  begin
    AssertTrue(
      TDataConstraints.New
        .Add(TFakeConstraint.New(True, 'id', 'foo'))
        .Checked
        .OK
    );
  end;
  
  procedure TDataConstraintsTest.GetConstraint;
  begin
    AssertEquals(
      'id: foo',
      TDataConstraints.New
        .Add(TFakeConstraint.New(True, 'id', 'foo'))
        .Get(0)
        .Checked
        .Informations
        .Text
    );
  end;
  
  procedure TDataConstraintsTest.CheckedTrue;
  begin
    AssertTrue(
      TDataConstraints.New
        .Add(TFakeConstraint.New(True, 'id', 'foo'))
        .Add(TFakeConstraint.New(True, 'id', 'foo'))
        .Checked
        .OK
    );
  end;
  
  procedure TDataConstraintsTest.CheckedFalse;
  begin
    AssertFalse(
      TDataConstraints.New
        .Add(TFakeConstraint.New(False, 'id', 'foo'))
        .Add(TFakeConstraint.New(False, 'id', 'foo'))
        .Checked
        .OK
    );
  end;
  
  procedure TDataConstraintsTest.CheckedTrueAndFalse;
  begin
    AssertFalse(
      TDataConstraints.New
        .Add(TFakeConstraint.New(True, 'id', 'foo'))
        .Add(TFakeConstraint.New(False, 'id', 'foo'))
        .Checked
        .OK
    );
  end;
  
  initialization
    RegisterTest('Data', TDataStreamTest);
    RegisterTest('Data', TDataInformationsTest);
    RegisterTest('Data', TDataConstraintsTest);
  
  end.
  