File: 15nls.t

package info (click to toggle)
libdbd-oracle-perl 1.21-2
  • links: PTS
  • area: contrib
  • in suites: lenny
  • size: 1,808 kB
  • ctags: 576
  • sloc: ansic: 6,172; perl: 4,753; makefile: 14
file content (52 lines) | stat: -rwxr-xr-x 1,670 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!perl
use strict;
use warnings;

use DBI;
use Test::More;

unshift @INC ,'t';
require 'nchar_test_lib.pl';

my $testcount = 9;
plan tests => $testcount;

$| = 1;

my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';

SKIP :
{
    my $dbh = DBI->connect($dsn, $dbuser, '',
			   {
			    AutoCommit => 1,
			    PrintError => 1,
			   });

    skip "Unable to connect to Oracle ($DBI::errstr)", $testcount
      unless ($dbh);

    my ($nls_parameters_before, $nls_parameters_after);
    my $old_date_format = 'HH24:MI:SS DD/MM/YYYY';
    my $new_date_format = 'YYYYMMDDHH24MISS';

    ok($dbh->do("alter session set nls_date_format='$old_date_format'"), 'set date format');

    like($dbh->ora_can_unicode, qr/^[0123]/,                          'ora_can_unicode');

    ok($nls_parameters_before = $dbh->ora_nls_parameters,             'fetch ora_nls_parameters');
    is(ref($nls_parameters_before), 'HASH',                           'check ora_nls_parameters returned hashref');
    is($nls_parameters_before->{'NLS_DATE_FORMAT'}, $old_date_format, 'check returned nls_date_format');

    ok($dbh->do("alter session set nls_date_format='$new_date_format'"), 'alter date format');
    ok(eq_hash($nls_parameters_before, $dbh->ora_nls_parameters),        'check ora_nls_parameters caches old values');

    $nls_parameters_before->{NLS_DATE_FORMAT} = 'foo';
    isnt($nls_parameters_before->{NLS_DATE_FORMAT},
	$dbh->ora_nls_parameters->{NLS_DATE_FORMAT},        'check ora_nls_parameters returns a copy');

    is($dbh->ora_nls_parameters(1)->{'NLS_DATE_FORMAT'}, $new_date_format, 'refetch and check new nls_date_format value');
}

__END__