%PDF- %PDF-
Direktori : /home/opti/optisoftcom/.cpanm/work/1544535406.20768/MongoDB-v2.0.2/t/ |
Current File : /home/opti/optisoftcom/.cpanm/work/1544535406.20768/MongoDB-v2.0.2/t/oid_generation.t |
# Copyright 2016 - present MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. use strict; use warnings; use Test::More; use Test::Fatal; use IO::File; use MongoDB; use lib "t/lib"; use MongoDBTest qw/skip_unless_mongod build_client get_test_db/; use TestCodecWrapper; skip_unless_mongod(); my $txtfile = "t/data/gridfs/input.txt"; sub test_with_codec { my ( $label, $codec, $oid_class ) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; subtest "Given $label" => sub { my $conn = build_client( $codec ? ( bson_codec => $codec ) : () ); my $testdb = get_test_db($conn); my $coll = $testdb->get_collection('test_collection'); subtest "When inserting with insert_one" => sub { my $result = $coll->insert_one( {} ); my $id = $result->inserted_id; is( ref $id, $oid_class, "inserted_id is $oid_class" ); }; subtest "When inserting with insert_many" => sub { my $result = $coll->insert_many( [ {}, {} ] ); my $ids = $result->inserted_ids; for my $i ( keys %$ids ) { is( ref $ids->{$i}, $oid_class, "inserted_id $i is $oid_class" ); } }; subtest "When uploading with GridFSBucket" => sub { my $bucket = $testdb->get_gridfsbucket; my $txt = new IO::File( $txtfile, "r" ) or die $!; binmode($txt); my $id = $bucket->upload_from_stream( 'input.txt', $txt ); is( ref $id, $oid_class, "inserted_id is $oid_class" ); }; }; } test_with_codec( "default codec", undef, "BSON::OID" ); test_with_codec( "TestCodecWrapper codec", TestCodecWrapper->new(), "TestCodecWrapper::OID" ); done_testing;