Mojolicious-Plugin-Mango

 view release on metacpan or  search on metacpan

t/90-mojolicious-plugin-mango.t  view on Meta::CPAN

use Modern::Perl;
use Test::More;
use Mojolicious::Lite;
use Test::Mojo;
use Try::Tiny;
try {
  use Mango;
  my $mango = Mango->new('mongodb://localhost:27017');
  $mango->db("test")->stats;
}
catch {
  plan skip_all => 'Cannot test because connection failed';
}
finally {
  no Mango;
};

my $default_db = 'mojolicious-plugin-mango';
plugin 'Mango', {
  mango => 'mongodb://localhost:27017/test?w=2',
  helper => 'foo',
  default_db => $default_db,
  no_query => 1,
};

for my $helper (qw/_mango mango/) {
  get "/$helper" => sub {
    my $self = shift;
    $self->render(text => ref $self->app->$helper);
  };
}

get '/getdb' => sub {
  my $self = shift;
  $self->render(text => $self->foo->name);
};

my $otherdb = 'xhofadFA';
get '/otherdb' => sub {
  my $self = shift;
  $self->render(text => $self->foo($otherdb)->name);
};
my $coll = 'mojolicious-plugin-mango-coll';
get '/foo_collection' => sub {
  my $self = shift;
  my $db = $self->foo;
  my $collection = $db->collection($coll);
  $self->render(text => $collection->name);
};
get '/coll' => sub {
  my $self = shift;
  $self->coll($coll)->ensure_index({foo => 1});
  $self->render(text => $self->coll($coll)->name);
};

get '/coll/:name' => sub {
  my $self = shift;
  $self->render(text => $self->coll($self->param('name'))->name);
};

get '/collection' => sub {



( run in 2.446 seconds using v1.01-cache-2.11-cpan-13bb782fe5a )