unit NamedFormatTest; interface uses TestFramework; type TNamedFormatTest = class(TTestCase) published procedure TestString; procedure TestNumbers; procedure TestUnusedKeys; procedure TestLiteralPercent; procedure TestLiteralPercentLiteralBracket; end; implementation uses X2UtNamedFormat; { TNamedFormatTest } procedure TNamedFormatTest.TestString; begin CheckEquals('Key = Value', NamedFormat('%:s = %:s', ['NamedValue', 'Value', 'NamedKey', 'Key'])); end; procedure TNamedFormatTest.TestNumbers; begin CheckEquals('The answer is, in fact, 42', NamedFormat('The %:s is, in fact, %:d', ['Answer', 'answer', 'LifeUniverseEverything', 42])); end; procedure TNamedFormatTest.TestUnusedKeys; begin CheckEquals('Used', NamedFormat('%:s', ['Used', 'Used', 'NotUsed', 'NotUsed'])); end; procedure TNamedFormatTest.TestLiteralPercent; begin CheckEquals('LIKE ''Test%''', NamedFormat('LIKE ''%:s%%''', ['Value', 'Test'])); end; procedure TNamedFormatTest.TestLiteralPercentLiteralBracket; begin CheckEquals('%:s', ['Value', 'Test'])); end; initialization RegisterTest(TNamedFormatTest.Suite); end.