anchor.diff:    Delphi.Mocks.ObjectProxy,
     Delphi.Mocks.ParamMatcher,
     Delphi.Mocks.AutoMock,
  -  Delphi.Mocks.Validation;
  -
  +  Delphi.Mocks.Validation,
  +  Delphi.Mocks.Helpers,
  +  DUnitX.Utils;
   
   procedure TMock<T>.CheckCreated;
   var
  
positive.code:     {$IFDEF SUPPORTS_REGEX} //XE2 or later
      function IsRegex(const regex : string; const options : TRegExOptions = []) : string;
      {$ENDIF}
    end;
  
    //Exception Types that the mocks will raise.
    EMockException = class(Exception);
  
negative.code: end;
  
  { It }
  
  function ItRec.AreSameFieldsAndPropertiedThat<T>(const Value: T): T;
  begin
    Result := Default(T);
  
    TMatcherFactory.Create<T>(ParamIndex,
      function(Param: T): Boolean
      begin
        Result := TComparer.CompareFields<T>(Param, Value) and TComparer.CompareProperties<T>(Param, Value);
      end);
  end;
  
  function ItRec.AreSameFieldsThat<T>(const Value: T): T;
  begin
    Result := Default(T);
  
    TMatcherFactory.Create<T>(ParamIndex,
      function(Param: T): Boolean
      begin
        Result := TComparer.CompareFields<T>(Param, Value);
      end);
  end;
  
  function ItRec.AreSamePropertiesThat<T>(const Value: T): T;
  begin
    Result := Default(T);
  
    TMatcherFactory.Create<T>(ParamIndex,
      function(Param: T): Boolean
      begin
        Result := TComparer.CompareProperties<T>(Param, Value);
      end);
  end;
  
  constructor ItRec.Create(const AParamIndex : Integer);
  begin
    ParamIndex := AParamIndex;
  