* fcl-db: sql parser test: test for create domain with check constraint, default and not null, a la

CREATE DOMAIN PRODTYPE AS VARCHAR(12)
         DEFAULT 'software'
         CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A')) NOT NULL;

git-svn-id: trunk@27868 -
This commit is contained in:
reiniero 2014-06-06 12:59:01 +00:00
parent 9ee1ec412f
commit 79d2abd1ca

View File

@ -223,6 +223,7 @@ type
Procedure TestNotNullDomain;
procedure TestDefaultNotNullDomain;
procedure TestCheckDomain;
procedure TestDefaultCheckNotNullDomain;
procedure TestAlterDomainDropDefault;
procedure TestAlterDomainDropCheck;
procedure TestAlterDomainDropCheckError;
@ -2238,7 +2239,7 @@ begin
end;
procedure TTestDomainParser.TestCheckDomain;
Var
var
P : TSQLCreateOrAlterStatement;
D : TSQLCreateDomainStatement;
T : TSQLTypeDefinition;
@ -2254,6 +2255,22 @@ begin
AssertEquals('Not null',True,T.NotNull);
end;
procedure TTestDomainParser.TestDefaultCheckNotNullDomain;
var
P : TSQLCreateOrAlterStatement;
D : TSQLCreateDomainStatement;
T : TSQLTypeDefinition;
begin
P:=TestCreateStatement('CREATE DOMAIN DEFCHECKNOTN AS VARCHAR(1) DEFAULT ''s'' CHECK (VALUE IN (''s'',''h'',''A'')) NOT NULL','A',TSQLCreateDomainStatement);
CheckClass(P,TSQLCreateDomainStatement);
D:=TSQLCreateDomainStatement(P);
AssertNotNull('Have type Definition',D.TypeDefinition);
T:=D.TypeDefinition;
AssertNotNull('Have default value',T.DefaultValue);
AssertEquals('Character data type',sdtChar,T.DataType);
AssertEquals('Not null',True,T.NotNull);
end;
procedure TTestDomainParser.TestAlterDomainDropDefault;
begin
TestCreateStatement('ALTER DOMAIN A DROP DEFAULT','A',TSQLAlterDomainDropDefaultStatement);