Mercurial > pub > Impl
comparison _test/Test/SQL/Schema.pm @ 194:4d0e1962161c
Replaced tabs with spaces
IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
author | cin |
---|---|
date | Tue, 10 Apr 2012 20:08:29 +0400 |
parents | 6148f89bb7bf |
children | 4ddb27ff4a0b |
comparison
equal
deleted
inserted
replaced
193:8e8401c0aea4 | 194:4d0e1962161c |
---|---|
72 }); | 72 }); |
73 | 73 |
74 }; | 74 }; |
75 | 75 |
76 test SetPrimaryKey => sub { | 76 test SetPrimaryKey => sub { |
77 my ($this) = @_; | 77 my ($this) = @_; |
78 | 78 |
79 my $tableUser = $this->schemaDB->GetTable('User'); | 79 my $tableUser = $this->schemaDB->GetTable('User'); |
80 my $tableRole = $this->schemaDB->GetTable('Role'); | 80 my $tableRole = $this->schemaDB->GetTable('Role'); |
81 | 81 |
82 $tableUser->AddConstraint( pk => { columns => ['Id'], name => 'PK' }); | 82 $tableUser->AddConstraint( pk => { columns => ['Id'], name => 'PK' }); |
83 $tableRole->SetPrimaryKey('Id'); | 83 $tableRole->SetPrimaryKey('Id'); |
84 | 84 |
85 $tableUser->primaryKey->HasColumn('Id') or failed "A primary key of 'User' table should contain 'Id' column"; | 85 $tableUser->primaryKey->HasColumn('Id') or failed "A primary key of 'User' table should contain 'Id' column"; |
86 $tableRole->primaryKey->HasColumn('Id') or failed "A primary key of 'Role' table should contain 'Id' column"; | 86 $tableRole->primaryKey->HasColumn('Id') or failed "A primary key of 'Role' table should contain 'Id' column"; |
87 | 87 |
88 }; | 88 }; |
89 | 89 |
90 test LinkTables => sub { | 90 test LinkTables => sub { |
91 my ($this) = @_; | 91 my ($this) = @_; |
92 | 92 |
93 my $tableUser = $this->schemaDB->GetTable('User'); | 93 my $tableUser = $this->schemaDB->GetTable('User'); |
94 my $tableRole = $this->schemaDB->GetTable('Role'); | 94 my $tableRole = $this->schemaDB->GetTable('Role'); |
95 | 95 |
96 $tableUser->LinkTo($tableRole,'RoleId'); | 96 $tableUser->LinkTo($tableRole,'RoleId'); |
97 | 97 |
98 $tableUser->GetColumnConstraints('RoleId') == 1 or failed "Wrong constraints count for 'RoleId' column", $tableUser->GetColumnConstraints('RoleId'); | 98 $tableUser->GetColumnConstraints('RoleId') == 1 or failed "Wrong constraints count for 'RoleId' column", $tableUser->GetColumnConstraints('RoleId'); |
99 }; | 99 }; |
100 | 100 |
101 test AddConstraint => sub { | 101 test AddConstraint => sub { |
102 my ($this) = @_; | 102 my ($this) = @_; |
103 | 103 |
114 failed "Failed to retrieve a constraint" unless ($table->GetColumnConstraints('ObsoleteId'))[0] == $constraint; | 114 failed "Failed to retrieve a constraint" unless ($table->GetColumnConstraints('ObsoleteId'))[0] == $constraint; |
115 | 115 |
116 }; | 116 }; |
117 | 117 |
118 test RemoveConstraint => sub { | 118 test RemoveConstraint => sub { |
119 my ($this) = @_; | 119 my ($this) = @_; |
120 | 120 |
121 my $table = $this->schemaDB->GetTable('Role') or failed "Failed to get a table"; | 121 my $table = $this->schemaDB->GetTable('Role') or failed "Failed to get a table"; |
122 my $constraint = $table->GetConstraint('Role_ObsoleteId_Uniq'); | 122 my $constraint = $table->GetConstraint('Role_ObsoleteId_Uniq'); |
123 | 123 |
124 eval { | 124 eval { |
125 $table->RemoveColumn('ObsoleteId'); | 125 $table->RemoveColumn('ObsoleteId'); |
126 1; | 126 1; |
127 } and failed "Should not remove column with constraint"; | 127 } and failed "Should not remove column with constraint"; |
128 | 128 |
129 $table->RemoveColumn('ObsoleteId','force'); | 129 $table->RemoveColumn('ObsoleteId','force'); |
130 | 130 |
131 failed "A constraint remains alive after column deletion" unless $constraint->isDisposed; | 131 failed "A constraint remains alive after column deletion" unless $constraint->isDisposed; |
132 | 132 |
133 }; | 133 }; |
134 | 134 |
135 test RemoveTable => sub { | 135 test RemoveTable => sub { |
136 my ($this) = @_; | 136 my ($this) = @_; |
137 | 137 |
138 my $table = $this->schemaDB->GetTable('Role') or failed "Failed to get a table"; | 138 my $table = $this->schemaDB->GetTable('Role') or failed "Failed to get a table"; |
139 | 139 |
140 $this->schemaDB->RemoveTable('Role'); | 140 $this->schemaDB->RemoveTable('Role'); |
141 | 141 |
142 $table->isDisposed or failed "A table remains alive after deletion"; | 142 $table->isDisposed or failed "A table remains alive after deletion"; |
143 | 143 |
144 my $table2 = $this->schemaDB->GetTable('User'); | 144 my $table2 = $this->schemaDB->GetTable('User'); |
145 | 145 |
146 $table2->GetColumnConstraints('RoleId') == 0 or failed "A foreign key keept alive"; | 146 $table2->GetColumnConstraints('RoleId') == 0 or failed "A foreign key keept alive"; |
147 }; | 147 }; |
148 | 148 |
149 test Clone => sub { | 149 test Clone => sub { |
150 my ($this) = @_; | 150 my ($this) = @_; |
151 | 151 |
152 my $clone1 = $this->schemaDB->Clone(); | 152 my $clone1 = $this->schemaDB->Clone(); |
153 | 153 |
154 $clone1->Dispose(); | 154 $clone1->Dispose(); |
155 | 155 |
156 $this->schemaDB->isDisposed and failed "An original schema should not be disposed"; | 156 $this->schemaDB->isDisposed and failed "An original schema should not be disposed"; |
157 }; | 157 }; |
158 | 158 |
159 test Dispose => sub { | 159 test Dispose => sub { |
160 my ($this) = @_; | 160 my ($this) = @_; |
161 | 161 |