| ... | ... |
@@ -3787,6 +3787,72 @@ $result = $dbi->select( |
| 3787 | 3787 |
); |
| 3788 | 3788 |
is_deeply($result->all, [{'table2.key3' => 4}]);
|
| 3789 | 3789 |
|
| 3790 |
+test 'Model class'; |
|
| 3791 |
+use MyDBI1; |
|
| 3792 |
+$dbi = MyDBI1->connect; |
|
| 3793 |
+eval { $dbi->execute('drop table table1') };
|
|
| 3794 |
+$dbi->execute($create_table1); |
|
| 3795 |
+$model = $dbi->model('table1');
|
|
| 3796 |
+$model->insert({key1 => 'a', key2 => 'b'});
|
|
| 3797 |
+is_deeply($model->list->all, [{key1 => 'a', key2 => 'b'}], 'basic');
|
|
| 3798 |
+eval { $dbi->execute('drop table table2') };
|
|
| 3799 |
+$dbi->execute($create_table2); |
|
| 3800 |
+$model = $dbi->model('table2');
|
|
| 3801 |
+$model->insert({key1 => 'a'});
|
|
| 3802 |
+is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'basic');
|
|
| 3803 |
+is($dbi->models->{'table1'}, $dbi->model('table1'));
|
|
| 3804 |
+is($dbi->models->{'table2'}, $dbi->model('table2'));
|
|
| 3805 |
+ |
|
| 3806 |
+$dbi = MyDBI4->connect; |
|
| 3807 |
+eval { $dbi->execute('drop table table1') };
|
|
| 3808 |
+$dbi->execute($create_table1); |
|
| 3809 |
+$model = $dbi->model('table1');
|
|
| 3810 |
+$model->insert({key1 => 'a', key2 => 'b'});
|
|
| 3811 |
+is_deeply($model->list->all, [{key1 => 'a', key2 => 'b'}], 'basic');
|
|
| 3812 |
+eval { $dbi->execute('drop table table2') };
|
|
| 3813 |
+$dbi->execute($create_table2); |
|
| 3814 |
+$model = $dbi->model('table2');
|
|
| 3815 |
+$model->insert({key1 => 'a'});
|
|
| 3816 |
+is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'basic');
|
|
| 3817 |
+ |
|
| 3818 |
+$dbi = MyDBI5->connect; |
|
| 3819 |
+eval { $dbi->execute('drop table table1') };
|
|
| 3820 |
+eval { $dbi->execute('drop table table2') };
|
|
| 3821 |
+$dbi->execute($create_table1); |
|
| 3822 |
+$dbi->execute($create_table2); |
|
| 3823 |
+$model = $dbi->model('table2');
|
|
| 3824 |
+$model->insert({key1 => 'a'});
|
|
| 3825 |
+is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'include all model');
|
|
| 3826 |
+$dbi->insert(table => 'table1', param => {key1 => 1});
|
|
| 3827 |
+$model = $dbi->model('table1');
|
|
| 3828 |
+is_deeply($model->list->all, [{key1 => 1, key2 => undef}], 'include all model');
|
|
| 3829 |
+ |
|
| 3830 |
+test 'primary_key'; |
|
| 3831 |
+use MyDBI1; |
|
| 3832 |
+$dbi = MyDBI1->connect; |
|
| 3833 |
+$model = $dbi->model('table1');
|
|
| 3834 |
+$model->primary_key(['key1', 'key2']); |
|
| 3835 |
+is_deeply($model->primary_key, ['key1', 'key2']); |
|
| 3836 |
+ |
|
| 3837 |
+test 'columns'; |
|
| 3838 |
+use MyDBI1; |
|
| 3839 |
+$dbi = MyDBI1->connect; |
|
| 3840 |
+$model = $dbi->model('table1');
|
|
| 3841 |
+$model->columns(['key1', 'key2']); |
|
| 3842 |
+is_deeply($model->columns, ['key1', 'key2']); |
|
| 3843 |
+ |
|
| 3844 |
+test 'setup_model'; |
|
| 3845 |
+use MyDBI1; |
|
| 3846 |
+$dbi = MyDBI1->connect; |
|
| 3847 |
+eval { $dbi->execute('drop table table1') };
|
|
| 3848 |
+eval { $dbi->execute('drop table table2') };
|
|
| 3849 |
+ |
|
| 3850 |
+$dbi->execute($create_table1); |
|
| 3851 |
+$dbi->execute($create_table2); |
|
| 3852 |
+$dbi->setup_model; |
|
| 3853 |
+is_deeply([sort @{$dbi->model('table1')->columns}], ['key1', 'key2']);
|
|
| 3854 |
+is_deeply([sort @{$dbi->model('table2')->columns}], ['key1', 'key3']);
|
|
| 3855 |
+ |
|
| 3790 | 3856 |
|
| 3791 | 3857 |
|
| 3792 | 3858 |
1; |
| ... | ... |
@@ -178,74 +178,6 @@ my $binary; |
| 178 | 178 |
# Prepare table |
| 179 | 179 |
$dbi = DBIx::Custom->connect; |
| 180 | 180 |
|
| 181 |
-### a little complex test |
|
| 182 |
- |
|
| 183 |
-test 'Model class'; |
|
| 184 |
-use MyDBI1; |
|
| 185 |
-$dbi = MyDBI1->connect; |
|
| 186 |
-eval { $dbi->execute('drop table table1') };
|
|
| 187 |
-$dbi->execute($create_table1); |
|
| 188 |
-$model = $dbi->model('table1');
|
|
| 189 |
-$model->insert({key1 => 'a', key2 => 'b'});
|
|
| 190 |
-is_deeply($model->list->all, [{key1 => 'a', key2 => 'b'}], 'basic');
|
|
| 191 |
-eval { $dbi->execute('drop table table2') };
|
|
| 192 |
-$dbi->execute($create_table2); |
|
| 193 |
-$model = $dbi->model('table2');
|
|
| 194 |
-$model->insert({key1 => 'a'});
|
|
| 195 |
-is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'basic');
|
|
| 196 |
-is($dbi->models->{'table1'}, $dbi->model('table1'));
|
|
| 197 |
-is($dbi->models->{'table2'}, $dbi->model('table2'));
|
|
| 198 |
- |
|
| 199 |
-$dbi = MyDBI4->connect; |
|
| 200 |
-eval { $dbi->execute('drop table table1') };
|
|
| 201 |
-$dbi->execute($create_table1); |
|
| 202 |
-$model = $dbi->model('table1');
|
|
| 203 |
-$model->insert({key1 => 'a', key2 => 'b'});
|
|
| 204 |
-is_deeply($model->list->all, [{key1 => 'a', key2 => 'b'}], 'basic');
|
|
| 205 |
-$dbi->execute($create_table2); |
|
| 206 |
-$model = $dbi->model('table2');
|
|
| 207 |
-$model->insert({key1 => 'a'});
|
|
| 208 |
-is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'basic');
|
|
| 209 |
- |
|
| 210 |
-$dbi = MyDBI5->connect; |
|
| 211 |
-eval { $dbi->execute('drop table table1') };
|
|
| 212 |
-eval { $dbi->execute('drop table table2') };
|
|
| 213 |
-$dbi->execute($create_table1); |
|
| 214 |
-$dbi->execute($create_table2); |
|
| 215 |
-$model = $dbi->model('table2');
|
|
| 216 |
-$model->insert({key1 => 'a'});
|
|
| 217 |
-is_deeply($model->list->all, [{key1 => 'a', key3 => undef}], 'include all model');
|
|
| 218 |
-$dbi->insert(table => 'table1', param => {key1 => 1});
|
|
| 219 |
-$model = $dbi->model('table1');
|
|
| 220 |
-is_deeply($model->list->all, [{key1 => 1, key2 => undef}], 'include all model');
|
|
| 221 |
- |
|
| 222 |
-test 'primary_key'; |
|
| 223 |
-use MyDBI1; |
|
| 224 |
-$dbi = MyDBI1->connect; |
|
| 225 |
-$model = $dbi->model('table1');
|
|
| 226 |
-$model->primary_key(['key1', 'key2']); |
|
| 227 |
-is_deeply($model->primary_key, ['key1', 'key2']); |
|
| 228 |
- |
|
| 229 |
-test 'columns'; |
|
| 230 |
-use MyDBI1; |
|
| 231 |
-$dbi = MyDBI1->connect; |
|
| 232 |
-$model = $dbi->model('table1');
|
|
| 233 |
-$model->columns(['key1', 'key2']); |
|
| 234 |
-is_deeply($model->columns, ['key1', 'key2']); |
|
| 235 |
- |
|
| 236 |
-test 'setup_model'; |
|
| 237 |
-use MyDBI1; |
|
| 238 |
-$dbi = MyDBI1->connect; |
|
| 239 |
-eval { $dbi->execute('drop table table1') };
|
|
| 240 |
-eval { $dbi->execute('drop table table2') };
|
|
| 241 |
- |
|
| 242 |
-$dbi->execute($create_table1); |
|
| 243 |
-$dbi->execute($create_table2); |
|
| 244 |
-$dbi->setup_model; |
|
| 245 |
-is_deeply($dbi->model('table1')->columns, ['key1', 'key2']);
|
|
| 246 |
-is_deeply($dbi->model('table2')->columns, ['key1', 'key3']);
|
|
| 247 |
- |
|
| 248 |
- |
|
| 249 | 181 |
### SQLite only test |
| 250 | 182 |
test 'prefix'; |
| 251 | 183 |
$dbi = DBIx::Custom->connect; |