| ... | ... |
@@ -16,6 +16,7 @@ sub password : ClassObjectAttr { initialize => {clone => 'scalar'} }
|
| 16 | 16 |
sub data_source : ClassObjectAttr { initialize => {clone => 'scalar'} }
|
| 17 | 17 |
sub dbi_options : ClassObjectAttr { initialize => {clone => 'hash',
|
| 18 | 18 |
default => sub { {} } } }
|
| 19 |
+sub database : ClassObjectAttr { initialize => {clone => 'scalar'} }
|
|
| 19 | 20 |
|
| 20 | 21 |
sub bind_filter : ClassObjectAttr { initialize => {clone => 'scalar'} }
|
| 21 | 22 |
sub fetch_filter : ClassObjectAttr { initialize => {clone => 'scalar'} }
|
| ... | ... |
@@ -783,6 +784,8 @@ Please tell me bug if you find |
| 783 | 784 |
$self = $dbi->database($database); |
| 784 | 785 |
$database = $dbi->database; |
| 785 | 786 |
|
| 787 |
+This method will be used in subclass connect method. |
|
| 788 |
+ |
|
| 786 | 789 |
=head2 dbi_options |
| 787 | 790 |
|
| 788 | 791 |
# Set and get DBI option |
| ... | ... |
@@ -23,6 +23,7 @@ my $dbi; |
| 23 | 23 |
test 'Constructor'; |
| 24 | 24 |
$dbi = DBI::Custom->new( |
| 25 | 25 |
user => 'a', |
| 26 |
+ database => 'a', |
|
| 26 | 27 |
password => 'b', |
| 27 | 28 |
data_source => 'c', |
| 28 | 29 |
dbi_options => {d => 1, e => 2},
|
| ... | ... |
@@ -34,7 +35,7 @@ $dbi = DBI::Custom->new( |
| 34 | 35 |
result_class => 'g', |
| 35 | 36 |
sql_template => $SQL_TMPL->{0},
|
| 36 | 37 |
); |
| 37 |
-is_deeply($dbi,{user => 'a', password => 'b', data_source => 'c',
|
|
| 38 |
+is_deeply($dbi,{user => 'a', database => 'a', password => 'b', data_source => 'c',
|
|
| 38 | 39 |
dbi_options => {d => 1, e => 2}, filters => {f => 3}, bind_filter => 'f',
|
| 39 | 40 |
fetch_filter => 'g', result_class => 'g', |
| 40 | 41 |
sql_template => $SQL_TMPL->{0}}, $test);
|
| ... | ... |
@@ -48,6 +49,7 @@ test 'Sub class constructor'; |
| 48 | 49 |
|
| 49 | 50 |
__PACKAGE__ |
| 50 | 51 |
->user('a')
|
| 52 |
+ ->database('a')
|
|
| 51 | 53 |
->password('b')
|
| 52 | 54 |
->data_source('c')
|
| 53 | 55 |
->dbi_options({d => 1, e => 2})
|
| ... | ... |
@@ -65,6 +67,7 @@ test 'Sub class constructor'; |
| 65 | 67 |
} |
| 66 | 68 |
$dbi = DBI::Custom::T1->new( |
| 67 | 69 |
user => 'ao', |
| 70 |
+ database => 'ao', |
|
| 68 | 71 |
password => 'bo', |
| 69 | 72 |
data_source => 'co', |
| 70 | 73 |
dbi_options => {do => 10, eo => 20},
|
| ... | ... |
@@ -80,6 +83,7 @@ $dbi = DBI::Custom::T1->new( |
| 80 | 83 |
sql_template => $SQL_TMPL->{0},
|
| 81 | 84 |
); |
| 82 | 85 |
is($dbi->user, 'ao', "$test : user"); |
| 86 |
+is($dbi->database, 'ao', "$test : database"); |
|
| 83 | 87 |
is($dbi->password, 'bo', "$test : passowr"); |
| 84 | 88 |
is($dbi->data_source, 'co', "$test : data_source"); |
| 85 | 89 |
is_deeply($dbi->dbi_options, {do => 10, eo => 20}, "$test : dbi_options");
|
| ... | ... |
@@ -94,6 +98,7 @@ isa_ok($dbi, 'DBI::Custom::T1'); |
| 94 | 98 |
test 'Sub class constructor default'; |
| 95 | 99 |
$dbi = DBI::Custom::T1->new; |
| 96 | 100 |
is($dbi->user, 'a', "$test : user"); |
| 101 |
+is($dbi->database, 'a', "$test : database"); |
|
| 97 | 102 |
is($dbi->password, 'b', "$test : password"); |
| 98 | 103 |
is($dbi->data_source, 'c', "$test : data_source"); |
| 99 | 104 |
is_deeply($dbi->dbi_options, {d => 1, e => 2}, "$test : dbi_options");
|
| ... | ... |
@@ -113,6 +118,7 @@ test 'Sub sub class constructor default'; |
| 113 | 118 |
} |
| 114 | 119 |
$dbi = DBI::Custom::T1_2->new; |
| 115 | 120 |
is($dbi->user, 'a', "$test : user"); |
| 121 |
+is($dbi->database, 'a', "$test : database"); |
|
| 116 | 122 |
is($dbi->password, 'b', "$test : passowrd"); |
| 117 | 123 |
is($dbi->data_source, 'c', "$test : data_source"); |
| 118 | 124 |
is_deeply($dbi->dbi_options, {d => 1, e => 2}, "$test : dbi_options");
|
| ... | ... |
@@ -132,6 +138,7 @@ test 'Customized sub class constructor default'; |
| 132 | 138 |
|
| 133 | 139 |
__PACKAGE__ |
| 134 | 140 |
->user('ao')
|
| 141 |
+ ->database('ao')
|
|
| 135 | 142 |
->password('bo')
|
| 136 | 143 |
->data_source('co')
|
| 137 | 144 |
->dbi_options({do => 10, eo => 20})
|
| ... | ... |
@@ -149,6 +156,7 @@ test 'Customized sub class constructor default'; |
| 149 | 156 |
} |
| 150 | 157 |
$dbi = DBI::Custom::T1_3->new; |
| 151 | 158 |
is($dbi->user, 'ao', "$test : user"); |
| 159 |
+is($dbi->database, 'ao', "$test : database"); |
|
| 152 | 160 |
is($dbi->password, 'bo', "$test : password"); |
| 153 | 161 |
is($dbi->data_source, 'co', "$test : data_source"); |
| 154 | 162 |
is_deeply($dbi->dbi_options, {do => 10, eo => 20}, "$test : dbi_options");
|
| ... | ... |
@@ -164,6 +172,7 @@ isa_ok($dbi, 'DBI::Custom::T1_3'); |
| 164 | 172 |
test 'Customized sub class constructor'; |
| 165 | 173 |
$dbi = DBI::Custom::T1_3->new( |
| 166 | 174 |
user => 'a', |
| 175 |
+ database => 'a', |
|
| 167 | 176 |
password => 'b', |
| 168 | 177 |
data_source => 'c', |
| 169 | 178 |
dbi_options => {d => 1, e => 2},
|
| ... | ... |
@@ -179,6 +188,7 @@ $dbi = DBI::Custom::T1_3->new( |
| 179 | 188 |
sql_template => $SQL_TMPL->{2},
|
| 180 | 189 |
); |
| 181 | 190 |
is($dbi->user, 'a', "$test : user"); |
| 191 |
+is($dbi->database, 'a', "$test : database"); |
|
| 182 | 192 |
is($dbi->password, 'b', "$test : password"); |
| 183 | 193 |
is($dbi->data_source, 'c', "$test : data_source"); |
| 184 | 194 |
is_deeply($dbi->dbi_options, {d => 1, e => 2}, "$test : dbi_options");
|