Prty

 view release on metacpan or  search on metacpan

t/bin/Prty/Sql.t  view on Meta::CPAN

    my $stmt = $sql->modifyColumn('person','per_geburtstag',notNull=>1);
    $self->is($stmt,'ALTER TABLE person MODIFY per_geburtstag NOT NULL');

    # PostgreSQL

    $sql = Prty::Sql->new('PostgreSQL');

    $stmt = $sql->modifyColumn('person','per_geburtstag',notNull=>1);
    $self->is($stmt,
        'ALTER TABLE person ALTER COLUMN per_geburtstag SET NOT NULL');
}

# -----------------------------------------------------------------------------

sub test_renameColumn : Test(2) {
    my $self = shift;

    # Oracle

    my $sql = Prty::Sql->new('Oracle');

    my $stmt = $sql->renameColumn('person','per_name','per_nachname');
    # is $stmt,'ALTER TABLE person RENAME COLUMN per_name TO per_nachname';
    $self->isTest($stmt,
        'ALTER TABLE person RENAME COLUMN per_name TO per_nachname');

    # PostgreSQL

    $sql = Prty::Sql->new('PostgreSQL');

    $stmt = $sql->renameColumn('person','per_name','per_nachname');
    $self->isTest($stmt,
        'ALTER TABLE person RENAME COLUMN per_name TO per_nachname');
}

# -----------------------------------------------------------------------------

sub test_addPrimaryKeyConstraint : Test(3) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->addPrimaryKeyConstraint('tab1',['col1','col2']);
    $self->like($stmt,qr/ALTER TABLE tab1/);
    $self->like($stmt,qr/CONSTRAINT tab1_PK/);
    $self->like($stmt,qr/PRIMARY KEY \(col1, col2\)/);
}

# -----------------------------------------------------------------------------

sub test_addForeignKeyConstraint : Test(6) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->addForeignKeyConstraint('tab1',['col1','col2'],'tab2',
        -constraintName=>'tab1_tab2_FK',
        -defer=>1,
        -onDelete=>'cascade',
    );
    $self->like($stmt,qr/ALTER TABLE tab1 ADD/);
    $self->like($stmt,qr/CONSTRAINT tab1_tab2_FK/);
    $self->like($stmt,qr/FOREIGN KEY \(col1, col2\)/);
    $self->like($stmt,qr/REFERENCES tab2/);
    $self->like($stmt,qr/ON DELETE CASCADE/);
    $self->like($stmt,qr/DEFERRABLE INITIALLY DEFERRED/);
}

# -----------------------------------------------------------------------------

sub test_addNotNullConstraint : Test(3) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->addNotNullConstraint('tab1','col1');
    $self->like($stmt,qr/ALTER TABLE tab1/);
    $self->like($stmt,qr/ALTER COLUMN col1/);
    $self->like($stmt,qr/SET NOT NULL/);
}

# -----------------------------------------------------------------------------

sub test_addCheckConstraint : Test(3) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->addCheckConstraint('tab1','col1 > col2');
    $self->like($stmt,qr/ALTER TABLE tab1/);
    $self->like($stmt,qr/CONSTRAINT tab1_CK/);
    $self->like($stmt,qr/CHECK \(col1 > col2\)/);
}

# -----------------------------------------------------------------------------

sub test_addUniqueConstraint : Test(3) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->addUniqueConstraint('tab1',['col1','col2']);
    $self->like($stmt,qr/ALTER TABLE tab1/);
    $self->like($stmt,qr/CONSTRAINT tab1_UQ_col1_col2/);
    $self->like($stmt,qr/UNIQUE \(col1, col2\)/);
}

# -----------------------------------------------------------------------------

sub test_createIndex : Test(3) {
    my $self = shift;

    # PostgreSQL

    my $sql = Prty::Sql->new('PostgreSQL');
    my $stmt = $sql->createIndex('tab1',['col1','col2']);



( run in 1.804 second using v1.01-cache-2.11-cpan-f56aa216473 )