Changeset 94 for trunk/UTest.pas


Ignore:
Timestamp:
Feb 3, 2022, 10:53:30 PM (2 years ago)
Author:
chronos
Message:
  • Added: Validation tests for contact properties.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UTest.pas

    r91 r94  
    66
    77uses
    8   Classes, SysUtils, fgl;
     8  Classes, SysUtils, fgl, UContact;
    99
    1010type
     
    1919    Log: string;
    2020    procedure Run; virtual;
     21    procedure Evaluate(Passed: Boolean);
     22    procedure Pass;
     23    procedure Fail;
    2124  end;
    2225
     
    3538    Output: string;
    3639    procedure Run; override;
    37     procedure Evaluate(Passed: Boolean);
     40  end;
     41
     42  { TTestCaseCheckProperty }
     43
     44  TTestCaseCheckProperty = class(TTestCase)
     45    Input: string;
     46    ContactIndex: Integer;
     47    Index: TContactFieldIndex;
     48    Value: string;
     49    procedure Run; override;
    3850  end;
    3951
     
    4456implementation
    4557
    46 uses
    47   UContact;
     58{ TTestCaseCheckProperty }
     59
     60procedure TTestCaseCheckProperty.Run;
     61var
     62  Lines: TStringList;
     63  PropertyValue: string;
     64begin
     65  Lines := TStringList.Create;
     66  try
     67    with TContactsFile.Create do
     68    try
     69      Lines.Text := Input;
     70      LoadFromStrings(Lines);
     71      if ContactIndex < Contacts.Count then begin
     72        PropertyValue := Contacts[ContactIndex].Fields[Index];
     73        Evaluate(PropertyValue = Value);
     74      end else Fail;
     75      Log := 'Expected:' + LineEnding +
     76        '"' + Value + '"' + LineEnding + LineEnding +
     77        'Output:' + LineEnding +
     78        '"' + PropertyValue + '"';
     79    finally
     80      Free;
     81    end;
     82  finally
     83    Lines.Free;
     84  end;
     85end;
    4886
    4987{ TTestCaseLoadSave }
     
    62100      SaveToStrings(Lines);
    63101      Evaluate(Lines.Text = Output);
    64       if Result <> trPassed then begin
    65         Log := 'Expected:' + LineEnding +
    66           '"' + Output + '"' + LineEnding + LineEnding +
    67           'Output:' + LineEnding +
    68           '"' + Lines.Text + '"';
    69       end;
     102      Log := 'Expected:' + LineEnding +
     103        '"' + Output + '"' + LineEnding + LineEnding +
     104        'Output:' + LineEnding +
     105        '"' + Lines.Text + '"';
    70106    finally
    71107      Free;
     
    76112end;
    77113
    78 procedure TTestCaseLoadSave.Evaluate(Passed: Boolean);
     114{ TTestCase }
     115
     116procedure TTestCase.Run;
     117begin
     118end;
     119
     120procedure TTestCase.Evaluate(Passed: Boolean);
    79121begin
    80122  if Passed then Result := trPassed
     
    82124end;
    83125
    84 { TTestCase }
     126procedure TTestCase.Pass;
     127begin
     128  Result := trPassed;
     129end;
    85130
    86 procedure TTestCase.Run;
     131procedure TTestCase.Fail;
    87132begin
    88 
     133  Result := trFailed;
    89134end;
    90135
Note: See TracChangeset for help on using the changeset viewer.