Ignore:
Timestamp:
Feb 25, 2007, 4:15:10 PM (18 years ago)
Author:
RBRi
Message:

file util refactoring and many more unit tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/unittests/StringUtilsUnitTests.pas

    r68 r82  
    88  StringUtilsUnit;
    99
    10  FUNCTION getStringUtilsUnitTests : TList;
     10  FUNCTION getStringUtilsUnitTests : TList;
    1111
    1212
     
    279279
    280280
     281  // ------------------------------------------------------
     282
     283
    281284  PROCEDURE testStrExtractStrings_EmptyReceiver;
    282285  VAR
     
    408411
    409412
     413  // ------------------------------------------------------
     414
     415
     416  PROCEDURE testStrExtractStringsIgnoreEmpty_EmptyReceiver;
     417  VAR
     418    tmpResult : TStringList;
     419  BEGIN
     420    tmpResult := TStringList.Create;
     421    StrExtractStringsIgnoreEmpty(tmpResult, '', ['x'], '\');
     422
     423    assertEqualsInt('testStrExtractStringsIgnoreEmpty_EmptyReceiver', 0, tmpResult.count);
     424    tmpResult.Destroy;
     425  END;
     426
     427
     428  PROCEDURE testStrExtractStringsIgnoreEmpty_OnlyOnePart;
     429  VAR
     430    tmpResult : TStringList;
     431  BEGIN
     432    tmpResult := TStringList.Create;
     433    StrExtractStringsIgnoreEmpty(tmpResult, 'abcd', ['x'], '\');
     434
     435    assertEqualsInt('testStrExtractStringsIgnoreEmpty_OnlyOnePart', 1, tmpResult.count);
     436    assertEqualsString('testStrExtractStringsIgnoreEmpty_OnlyOnePart', 'abcd', tmpResult[0]);
     437
     438    tmpResult.Destroy;
     439  END;
     440
     441
     442  PROCEDURE testStrExtractStringsIgnoreEmpty_ManyParts;
     443  VAR
     444    tmpResult : TStringList;
     445  BEGIN
     446    tmpResult := TStringList.Create;
     447    StrExtractStringsIgnoreEmpty(tmpResult, 'abxcd', ['x'], '\');
     448
     449    assertEqualsInt('testStrExtractStringsIgnoreEmpty_ManyParts', 2, tmpResult.count);
     450    assertEqualsString('testStrExtractStringsIgnoreEmpty_ManyParts', 'ab', tmpResult[0]);
     451    assertEqualsString('testStrExtractStringsIgnoreEmpty_ManyParts', 'cd', tmpResult[1]);
     452
     453    tmpResult.Destroy;
     454  END;
     455
     456
     457  PROCEDURE testStrExtractStringsIgnoreEmpty_StartWithDelimiter;
     458  VAR
     459    tmpResult : TStringList;
     460  BEGIN
     461    tmpResult := TStringList.Create;
     462    StrExtractStringsIgnoreEmpty(tmpResult, 'xab', ['x'], '\');
     463
     464    assertEqualsInt('testStrExtractStringsIgnoreEmpty_StartWithDelimiter', 1, tmpResult.count);
     465    assertEqualsString('testStrExtractStringsIgnoreEmpty_StartWithDelimiter', 'ab', tmpResult[0]);
     466
     467    tmpResult.Destroy;
     468  END;
     469
     470
     471  PROCEDURE testStrExtractStringsIgnoreEmpty_EndWithDelimiter;
     472  VAR
     473    tmpResult : TStringList;
     474  BEGIN
     475    tmpResult := TStringList.Create;
     476    StrExtractStringsIgnoreEmpty(tmpResult, 'abx', ['x'], '\');
     477
     478    assertEqualsInt('testStrExtractStringsIgnoreEmpty_EndWithDelimiter', 1, tmpResult.count);
     479    assertEqualsString('testStrExtractStringsIgnoreEmpty_EndWithDelimiter', 'ab', tmpResult[0]);
     480
     481    tmpResult.Destroy;
     482  END;
     483
     484
     485  PROCEDURE testStrExtractStringsIgnoreEmpty_EmptyPartInside;
     486  VAR
     487    tmpResult : TStringList;
     488  BEGIN
     489    tmpResult := TStringList.Create;
     490    StrExtractStringsIgnoreEmpty(tmpResult, 'axxb', ['x'], '\');
     491
     492    assertEqualsInt('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 2, tmpResult.count);
     493    assertEqualsString('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 'a', tmpResult[0]);
     494    assertEqualsString('testStrExtractStringsIgnoreEmpty_EmptyPartInside', 'b', tmpResult[1]);
     495
     496    tmpResult.Destroy;
     497  END;
     498
     499
     500  PROCEDURE testStrExtractStringsIgnoreEmpty_NoDelimiter;
     501  VAR
     502    tmpResult : TStringList;
     503  BEGIN
     504    tmpResult := TStringList.Create;
     505    StrExtractStringsIgnoreEmpty(tmpResult, 'axxb', [], '\');
     506
     507    assertEqualsInt('testStrExtractStringsIgnoreEmpty_NoDelimiter', 1, tmpResult.count);
     508    assertEqualsString('testStrExtractStringsIgnoreEmpty_NoDelimiter', 'axxb', tmpResult[0]);
     509
     510    tmpResult.Destroy;
     511  END;
     512
     513
     514  PROCEDURE testStrExtractStringsIgnoreEmpty_EscapedDelimiter;
     515  VAR
     516    tmpResult : TStringList;
     517  BEGIN
     518    tmpResult := TStringList.Create;
     519    StrExtractStringsIgnoreEmpty(tmpResult, 'a\xb', ['x'], '\');
     520
     521    assertEqualsInt('testStrExtractStringsIgnoreEmpty_EscapedDelimiter', 1, tmpResult.count);
     522    assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedDelimiter', 'axb', tmpResult[0]);
     523
     524    tmpResult.Destroy;
     525  END;
     526
     527  PROCEDURE testStrExtractStringsIgnoreEmpty_EscapedEscapeChar;
     528  VAR
     529    tmpResult : TStringList;
     530  BEGIN
     531    tmpResult := TStringList.Create;
     532    StrExtractStringsIgnoreEmpty(tmpResult, 'a\\xb', ['x'], '\');
     533
     534    assertEqualsInt('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 2, tmpResult.count);
     535    assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 'a\', tmpResult[0]);
     536    assertEqualsString('testStrExtractStringsIgnoreEmpty_EscapedEscapeChar', 'b', tmpResult[1]);
     537
     538    tmpResult.Destroy;
     539  END;
     540
     541
     542  // -------------------------------------------------------------------
     543
     544
     545  PROCEDURE testTrimLeftChars_Empty;
     546  VAR
     547    tmpResult : String;
     548  BEGIN
     549    tmpResult := StrTrimLeftChars('', ['b', 'x']);
     550
     551    assertEqualsString('testTrimLeftChars_Empty', '', tmpResult);
     552  END;
     553
     554
     555  PROCEDURE testTrimLeftChars_RemoveAll;
     556  VAR
     557    tmpResult : String;
     558  BEGIN
     559    tmpResult := StrTrimLeftChars('bxxxbx', ['b', 'x']);
     560
     561    assertEqualsString('testTrimLeftChars_RemoveAll', '', tmpResult);
     562  END;
     563
     564
     565  PROCEDURE testTrimLeftChars_OneLeft;
     566  VAR
     567    tmpResult : String;
     568  BEGIN
     569    tmpResult := StrTrimLeftChars('bxy', ['b', 'x']);
     570
     571    assertEqualsString('testTrimLeftChars_OneLeft', 'y', tmpResult);
     572  END;
     573
     574
     575  PROCEDURE testTrimLeftChars_LeftOnly;
     576  VAR
     577    tmpResult : String;
     578  BEGIN
     579    tmpResult := StrTrimLeftChars('bxbxxay', ['b', 'x']);
     580
     581    assertEqualsString('testTrimLeftChars_LeftOnly', 'ay', tmpResult);
     582  END;
     583
     584
     585  PROCEDURE testTrimLeftChars_CharsInside;
     586  VAR
     587    tmpResult : String;
     588  BEGIN
     589    tmpResult := StrTrimLeftChars('bxabxvvx', ['b', 'x']);
     590
     591    assertEqualsString('testTrimLeftChars_CharsInside', 'abxvvx', tmpResult);
     592  END;
     593
     594
     595  PROCEDURE testTrimLeftChars_Nothing;
     596  VAR
     597    tmpResult : String;
     598  BEGIN
     599    tmpResult := StrTrimLeftChars('acdef', ['b', 'x']);
     600
     601    assertEqualsString('testTrimLeftChars_Nothing', 'acdef', tmpResult);
     602  END;
     603
     604
     605  // -------------------------------------------------------------------
     606
     607
     608  PROCEDURE testTrimRightChars_Empty;
     609  VAR
     610    tmpResult : String;
     611  BEGIN
     612    tmpResult := StrTrimRightChars('', ['b', 'x']);
     613
     614    assertEqualsString('testTrimRightChars_Empty', '', tmpResult);
     615  END;
     616
     617
     618  PROCEDURE testTrimRightChars_RemoveAll;
     619  VAR
     620    tmpResult : String;
     621  BEGIN
     622    tmpResult := StrTrimRightChars('bxxxbx', ['b', 'x']);
     623
     624    assertEqualsString('testTrimRightChars_RemoveAll', '', tmpResult);
     625  END;
     626
     627
     628  PROCEDURE testTrimRightChars_OneLeft;
     629  VAR
     630    tmpResult : String;
     631  BEGIN
     632    tmpResult := StrTrimRightChars('ybx', ['b', 'x']);
     633
     634    assertEqualsString('testTrimRightChars_OneLeft', 'y', tmpResult);
     635  END;
     636
     637
     638  PROCEDURE testTrimRightChars_RightOnly;
     639  VAR
     640    tmpResult : String;
     641  BEGIN
     642    tmpResult := StrTrimRightChars('aybxbxx', ['b', 'x']);
     643
     644    assertEqualsString('testTrimRightChars_RightOnly', 'ay', tmpResult);
     645  END;
     646
     647
     648  PROCEDURE testTrimRightChars_CharsInside;
     649  VAR
     650    tmpResult : String;
     651  BEGIN
     652    tmpResult := StrTrimRightChars('abxvvxb', ['b', 'x']);
     653
     654    assertEqualsString('testTrimRightChars_CharsInside', 'abxvv', tmpResult);
     655  END;
     656
     657
     658  PROCEDURE testTrimRightChars_Nothing;
     659  VAR
     660    tmpResult : String;
     661  BEGIN
     662    tmpResult := StrTrimRightChars('acdef', ['b', 'x']);
     663
     664    assertEqualsString('testTrimRightChars_Nothing', 'acdef', tmpResult);
     665  END;
     666
     667
     668  // -------------------------------------------------------------------
     669
    410670  PROCEDURE testTrimChars_Empty;
    411671  VAR
     
    428688
    429689
     690  PROCEDURE testTrimChars_OneLeftFromLeft;
     691  VAR
     692    tmpResult : String;
     693  BEGIN
     694    tmpResult := StrTrimChars('bxa', ['b', 'x']);
     695
     696    assertEqualsString('testTrimChars_OneLeftFromLeft', 'a', tmpResult);
     697  END;
     698
     699
     700  PROCEDURE testTrimChars_OneLeftFromRight;
     701  VAR
     702    tmpResult : String;
     703  BEGIN
     704    tmpResult := StrTrimChars('abx', ['b', 'x']);
     705
     706    assertEqualsString('testTrimChars_OneLeftFromRight', 'a', tmpResult);
     707  END;
     708
     709
    430710  PROCEDURE testTrimChars_LeftOnly;
    431711  VAR
     
    468748
    469749
     750  // -------------------------------------------------------------------
     751
     752
    470753  PROCEDURE testTrim;
    471754  VAR
     
    476759    assertEqualsString('testTrim', 'a bc', tmpResult);
    477760  END;
     761
     762
     763  // -------------------------------------------------------------------
     764
     765
     766  PROCEDURE testStrLeft_Empty;
     767  VAR
     768    tmpResult : String;
     769  BEGIN
     770    tmpResult := StrLeft('', 1);
     771
     772    assertEqualsString('testStrLeft_Empty', '', tmpResult);
     773  END;
     774
     775
     776  PROCEDURE testStrLeft_Nothing;
     777  VAR
     778    tmpResult : String;
     779  BEGIN
     780    tmpResult := StrLeft('abc', 0);
     781
     782    assertEqualsString('testStrLeft_Nothing', '', tmpResult);
     783  END;
     784
     785
     786  PROCEDURE testStrLeft_WholeString;
     787  VAR
     788    tmpResult : String;
     789  BEGIN
     790    tmpResult := StrLeft('abc', 3);
     791
     792    assertEqualsString('testStrLeft_WholeString', 'abc', tmpResult);
     793  END;
     794
     795  PROCEDURE testStrLeft_ToManyRequested;
     796  VAR
     797    tmpResult : String;
     798  BEGIN
     799    tmpResult := StrLeft('abc', 5);
     800
     801    assertEqualsString('testStrLeft_ToManyRequested', 'abc', tmpResult);
     802  END;
     803
     804  PROCEDURE testStrLeft_Part;
     805  VAR
     806    tmpResult : String;
     807  BEGIN
     808    tmpResult := StrLeft('abcdef', 2);
     809
     810    assertEqualsString('testStrLeft_Part', 'ab', tmpResult);
     811  END;
     812
     813  // -------------------------------------------------------------------
    478814
    479815
     
    7241060    result.add(@testStrExtractStrings_EscapedEscapeChar);
    7251061
     1062    result.add(@testStrExtractStringsIgnoreEmpty_EmptyReceiver);
     1063    result.add(@testStrExtractStringsIgnoreEmpty_OnlyOnePart);
     1064    result.add(@testStrExtractStringsIgnoreEmpty_ManyParts);
     1065    result.add(@testStrExtractStringsIgnoreEmpty_StartWithDelimiter);
     1066    result.add(@testStrExtractStringsIgnoreEmpty_EndWithDelimiter);
     1067    result.add(@testStrExtractStringsIgnoreEmpty_EmptyPartInside);
     1068    result.add(@testStrExtractStringsIgnoreEmpty_NoDelimiter);
     1069    result.add(@testStrExtractStringsIgnoreEmpty_EscapedDelimiter);
     1070    result.add(@testStrExtractStringsIgnoreEmpty_EscapedEscapeChar);
     1071
     1072    result.add(@testTrimLeftChars_Empty);
     1073    result.add(@testTrimLeftChars_RemoveAll);
     1074    result.add(@testTrimLeftChars_OneLeft);
     1075    result.add(@testTrimLeftChars_LeftOnly);
     1076    result.add(@testTrimLeftChars_CharsInside);
     1077    result.add(@testTrimLeftChars_Nothing);
     1078
     1079    result.add(@testTrimRightChars_Empty);
     1080    result.add(@testTrimRightChars_RemoveAll);
     1081    result.add(@testTrimRightChars_OneLeft);
     1082    result.add(@testTrimRightChars_RightOnly);
     1083    result.add(@testTrimRightChars_CharsInside);
     1084    result.add(@testTrimRightChars_Nothing);
     1085
    7261086    result.add(@testTrimChars_Empty);
    7271087    result.add(@testTrimChars_RemoveAll);
     1088    result.add(@testTrimChars_OneLeftFromLeft);
     1089    result.add(@testTrimChars_OneLeftFromRight);
    7281090    result.add(@testTrimChars_LeftOnly);
    7291091    result.add(@testTrimChars_RightOnly);
    7301092    result.add(@testTrimChars_CharsInside);
    7311093    result.add(@testTrimChars_Nothing);
     1094
    7321095    result.add(@testTrim);
     1096
     1097    result.add(@testStrLeft_Empty);
     1098    result.add(@testStrLeft_Nothing);
     1099    result.add(@testStrLeft_WholeString);
     1100    result.add(@testStrLeft_ToManyRequested);
     1101    result.add(@testStrLeft_Part);
    7331102
    7341103    result.add(@testStrEndsWith_BothEmpty);
Note: See TracChangeset for help on using the changeset viewer.