program mutest;

{$mode objfpc}{$H+}

uses
  SysUtils, Classes, MaskUtils;

{$R *.res}


var
  mu: TMaskUtils;
  Msk, Txt, vi: String;
begin
  mu := TMaskUtils.Create;
  try
    Msk := '###';
    Txt := 'ABCD';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"   (Shouldn''t this fail?)');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := '999';
    Txt := 'ABCD';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"   (Shouldn''t this fail?)');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := '000';
    Txt := 'ABCD';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := 'LLL';
    Txt := '1234';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := 'lll';
    Txt := '1234';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"   (Shouldn''t this fail?)');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := 'AAA';
    Txt := '[{|/';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

    Msk := 'aaa';
    Txt := '[{|/';
    mu.Mask := Msk;
    mu.Value := Txt;
    try
      writeln('Mask : "',Msk,'"');
      writeln('Value: "',Txt,'"');
      vi := mu.ValidateInput;
      writeln('VI   : "',vi,'"   (Shouldn''t this fail?)');
    except
      writeln('ValidateInput Failed');
    end;
    writeln;

  finally
    mu.free;
  end;
end.

