### ----------------------------------------------------
### -- Red
### -- Licenses: Artistic-2.0
### -- Authors: Fernando Correa de Oliveira
### -- File: t/69-array-columns.rakutest
### ----------------------------------------------------
#!/ust/bin/env raku

use Red;
use Test;

model Bla {
   has     $.id is serial;
   has     @.no-type is column;
   has Str @.str is column;
   has Int @.int is column;
}

my $*RED-FALLBACK       = $_ with %*ENV<RED_FALLBACK>;
my $*RED-DEBUG          = $_ with %*ENV<RED_DEBUG>;
my $*RED-DEBUG-RESPONSE = $_ with %*ENV<RED_DEBUG_RESPONSE>;
my $*RED-DEBUG-AST      = $_ with %*ENV<RED_DEBUG_AST>;
my @conf                = (%*ENV<RED_DATABASE> // "SQLite").split(" ");
my $driver              = @conf.shift;
my $*RED-DB             = database $driver, |%( @conf.map: { do given .split: "=" { .[0] => val .[1] } } );

schema(Bla).drop;
Bla.^create-table;

Bla.^create: :no-type(<a b c>), :str(Array[Str].new: <x y z>), :int(Array[Int].new: [1, 2, 3]);

lives-ok {
    my $obj = Bla.^all.first;

    is $obj.no-type, <a b c>;
    isa-ok $obj.str, Array[Str];
    is $obj.str, <x y z>;
    isa-ok $obj.int, Array[Int];
    is $obj.int, [1, 2, 3];
}

done-testing


