DBIx-Class-Sims-REST

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

---
abstract: ~
author:
  - 'Rob Kinyon <rob.kinyon@gmail.com>'
build_requires:
  ExtUtils::MakeMaker: 6.59
  HTTP::Request: 0.01
  LWP::UserAgent: 0.01
  Test::DBIx::Class: 0.01
  Test::Deep: 0.01
  Test::More: 0.88
configure_requires:
  ExtUtils::MakeMaker: 6.59
distribution_type: module
dynamic_config: 1
generated_by: 'Module::Install version 1.16'
license: perl

MYMETA.json  view on Meta::CPAN

      "directory" : [
         "inc",
         "t",
         "xt"
      ]
   },
   "prereqs" : {
      "build" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "6.59",
            "HTTP::Request" : "0.01",
            "LWP::UserAgent" : "0.01",
            "Test::DBIx::Class" : "0.01",
            "Test::Deep" : "0.01",
            "Test::More" : "0.88"
         }
      },
      "configure" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "6.59"
         }

MYMETA.yml  view on Meta::CPAN

---
abstract: unknown
author:
  - 'Rob Kinyon <rob.kinyon@gmail.com>'
build_requires:
  ExtUtils::MakeMaker: '6.59'
  HTTP::Request: '0.01'
  LWP::UserAgent: '0.01'
  Test::DBIx::Class: '0.01'
  Test::Deep: '0.01'
  Test::More: '0.88'
configure_requires:
  ExtUtils::MakeMaker: '6.59'
dynamic_config: 0
generated_by: 'Module::Install version 1.16, CPAN::Meta::Converter version 2.150005'
license: perl
meta-spec:

Makefile.PL  view on Meta::CPAN

requires 'DBIx::Class::Sims';
requires 'Hash::Merge';
requires 'JSON::XS';
requires 'Plack::Request';
requires 'Web::Simple';
 
test_requires 'Test::DBIx::Class' => '0.01';
test_requires 'Test::More'        => '0.88'; # done_testing
test_requires 'Test::Deep'        => '0.01';
test_requires 'LWP::UserAgent'    => '0.01';
test_requires 'HTTP::Request'     => '0.01';

tests_recursive;

auto_install;
 
WriteAll;

lib/DBIx/Class/Sims/REST.pm  view on Meta::CPAN

                  name => 'database name',
                  username => 'some username',
                  password => 'some password',
              },
              spec => <DBIx::Class::Sims specification>,
          },
      ],
  };

  my $ua = LWP::UserAgent->new;
  my $req = HTTP::Request->new(POST => 'http://<URL>:<PORT>/sims');
  $req->content(encode_json($data));
  my $res = $ua->request($req);

  return decode_json($res->content);

=head1 PURPOSE

L<DBIx::Class::Sims> provides an easy way to create and populate test data. But,
sometimes, your application isn't built on L<DBIx::Class>. Or Perl. These issues
shouldn't get in the way of using good tools. (Even if your application or test

t/t1.t  view on Meta::CPAN


    sub get_schema_class { 'MyApp::Schema' }
  }
}

use Web::Simple 'MyApp::Sims::REST';

my $app = MyApp::Sims::REST->new;
sub run_request { $app->run_test_request(@_); }

use HTTP::Request;
use JSON::XS qw( encode_json decode_json );
use Test::DBIx::Class qw(:resultsets);

{
  my $req = HTTP::Request->new( POST => '/sims' );
  $req->content(encode_json( {} ));
  my $res = run_request($req);
  cmp_deeply decode_json($res->content), {
    error => "No actions taken"
  };

  my $count = grep { $_ != 0 } map { ResultSet($_)->count } Schema->sources;
  is $count, 0, "There are no tables loaded after request does nothing";
}

{
  my $req = HTTP::Request->new( POST => '/sims' );
  $req->content(encode_json({
    databases => [
      {
        database => {
          name => 't/etc/dbfile.db',
        },
        spec => { Artist => [ { name => 'A'} ] },
      },
    ],
  }));



( run in 0.408 second using v1.01-cache-2.11-cpan-de7293f3b23 )