another enum test for MySQL
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 10_02mysql_common.t
index e414380..37c7f67 100644 (file)
@@ -20,6 +20,7 @@ my $tester = dbixcsl_common_tests->new(
     connect_info_opts=> { on_connect_call => 'set_strict_mode' },
     loader_options   => { preserve_case => 1 },
     skip_rels        => $test_innodb ? 0 : $skip_rels_msg,
+    quote_char       => '`',
     no_inline_rels   => 1,
     no_implicit_rels => 1,
     data_types  => {
@@ -123,25 +124,36 @@ my $tester = dbixcsl_common_tests->new(
                       => { data_type => 'enum', extra => { list => [qw/foo bar baz/] } },
         "set('foo','bar','baz')"
                       => { data_type => 'set',  extra => { list => [qw/foo bar baz/] } },
+
+        # RT#68717
+        "enum('11,10 (<500)/0 DUN','4,90 (<120)/0 EUR') NOT NULL default '11,10 (<500)/0 DUN'"
+                      => { data_type => 'enum', extra => { list => ['11,10 (<500)/0 DUN', '4,90 (<120)/0 EUR'] }, default_value => '11,10 (<500)/0 DUN' },
+        "set('11_10 (<500)/0 DUN','4_90 (<120)/0 EUR') NOT NULL default '11_10 (<500)/0 DUN'"
+                      => { data_type => 'set', extra => { list => ['11_10 (<500)/0 DUN', '4_90 (<120)/0 EUR'] }, default_value => '11_10 (<500)/0 DUN' },
+        "enum('19,90 (<500)/0 EUR','4,90 (<120)/0 EUR','7,90 (<200)/0 CHF','300 (<6000)/0 CZK','4,90 (<100)/0 EUR','39 (<900)/0 DKK','299 (<5000)/0 EEK','9,90 (<250)/0 EUR','3,90 (<100)/0 GBP','3000 (<70000)/0 HUF','4000 (<70000)/0 JPY','13,90 (<200)/0 LVL','99 (<2500)/0 NOK','39 (<1000)/0 PLN','1000 (<20000)/0 RUB','49 (<2500)/0 SEK','29 (<600)/0 USD','19,90 (<600)/0 EUR','0 EUR','0 CHF') NOT NULL default '19,90 (<500)/0 EUR'"
+                      => { data_type => 'enum', extra => { list => ['19,90 (<500)/0 EUR','4,90 (<120)/0 EUR','7,90 (<200)/0 CHF','300 (<6000)/0 CZK','4,90 (<100)/0 EUR','39 (<900)/0 DKK','299 (<5000)/0 EEK','9,90 (<250)/0 EUR','3,90 (<100)/0 GBP','3000 (<70000)/0 HUF','4000 (<70000)/0 JPY','13,90 (<200)/0 LVL','99 (<2500)/0 NOK','39 (<1000)/0 PLN','1000 (<20000)/0 RUB','49 (<2500)/0 SEK','29 (<600)/0 USD','19,90 (<600)/0 EUR','0 EUR','0 CHF'] }, default_value => '19,90 (<500)/0 EUR' },
     },
     extra => {
         create => [
             q{
-                CREATE TABLE mysql_loader_test1 (
+                CREATE TABLE `mysql_loader-test1` (
                     id INT AUTO_INCREMENT PRIMARY KEY,
                     value varchar(100)
                 )
             },
             q{
-                CREATE VIEW mysql_loader_test2 AS SELECT * FROM mysql_loader_test1
+                CREATE VIEW mysql_loader_test2 AS SELECT * FROM `mysql_loader-test1`
             },
         ],
         pre_drop_ddl => [ 'DROP VIEW mysql_loader_test2', ],
-        drop => [ 'mysql_loader_test1', ],
-        count => 1,
+        drop => [ 'mysql_loader-test1', ],
+        count => 2,
         run => sub {
             my ($schema, $monikers, $classes) = @_;
 
+            is $monikers->{'mysql_loader-test1'}, 'MysqlLoaderTest1',
+                'table with dash correctly monikerized';
+
             my $rsrc = $schema->resultset($monikers->{mysql_loader_test2})->result_source;
 
             is $rsrc->column_info('value')->{data_type}, 'varchar',