The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
use strict;
use warnings;

use Test::More;

use SQL::Translator::Generator::DDL::SQLServer;
use SQL::Translator::Schema::Field;
use SQL::Translator::Schema::Table;

my $shim = SQL::Translator::Generator::DDL::SQLServer->new();

is $shim->field(SQL::Translator::Schema::Field->new(
   name => 'lol',
   data_type => 'int',
)), '[lol] int NULL', 'simple field is generated correctly';

is $shim->field(SQL::Translator::Schema::Field->new(
   name => 'nice',
   data_type => 'varchar',
   size => 10,
)), '[nice] varchar(10) NULL', 'sized field is generated correctly';

my $table = SQL::Translator::Schema::Table->new(
    name => 'mytable',
);

$table->add_field(
    name => 'myenum',
    data_type => 'enum',
    extra => { list => [qw(foo ba'r)] },
);

like $shim->table($table),
     qr/\b\QCONSTRAINT [myenum_chk] CHECK ([myenum] IN ('foo','ba''r'))\E/,
     'enum constraint is generated and escaped correctly';

done_testing;