use
MongoDBTest
qw/skip_unless_mongod build_client get_test_db server_version server_type/
;
skip_unless_mongod();
$ENV
{PERL_MONGO_NO_DEP_WARNINGS} = 1;
my
$conn
= build_client();
my
$testdb
= get_test_db(
$conn
);
my
$db_name
=
$testdb
->name;
my
$server_version
= server_version(
$conn
);
my
$server_type
= server_type(
$conn
);
$testdb
->coll(
"test"
)->insert({});
subtest
'getlasterror'
=>
sub
{
plan
skip_all
=>
"MongoDB 1.5+ needed"
unless
$server_version
>= v1.5.0;
$testdb
->run_command([
ismaster
=> 1]);
my
$result
=
$testdb
->last_error({
fsync
=> 1});
is(
$result
->{ok}, 1);
is(
$result
->{err},
undef
);
$result
=
$testdb
->last_error;
is(
$result
->{ok}, 1,
'last_error: ok'
);
is(
$result
->{err},
undef
,
'last_error: err'
);
is(
$result
->{n},
$server_type
eq
'Mongos'
?
undef
: 0,
'last_error: n'
);
};
subtest
"eval (deprecated)"
=>
sub
{
plan
skip_all
=>
"eval not available under auth"
if
$conn
->password;
my
$hello
=
$testdb
->
eval
(
'function(x) { return "hello, "+x; }'
, [
"world"
]);
is(
'hello, world'
,
$hello
,
'db eval'
);
like(
exception {
$testdb
->
eval
(
'function(x) { xreturn "hello, "+x; }'
, [
"world"
]) },
qr/SyntaxError/
,
'js err'
);
};
done_testing;