Skip to content
Snippets Groups Projects
Select Git revision
  • a8d53959c6b3efd31d8726a612725253ab2c1441
  • master default protected
  • cmp_tool-improvement
  • v0.15
  • v0.14
  • v0.13
  • v0.12
  • v0.11
  • v0.09
  • v0.08
  • v0.07
  • v0.06
  • v0.05
13 results

footer.html

Blame
  • 01-dispatching.t 6.24 KiB
    use strict;
    use warnings;
    
    use Test::More tests => 30;
    
    BEGIN { use_ok('RedMiner::API') };
    
    #
    # Tests for internal name dispatching
    #
    
    my $redminer = RedMiner::API->new(
    	host => '',
    	key  => ''
    );
    
    my $r;
    
    $r = $redminer->_dispatch_name;
    ok(!defined $r, 'Must fail: undefined name');
    
    $r = $redminer->_dispatch_name('read');
    ok(!defined $r, 'Must fail: malformed name, no objects given');
    
    $r = $redminer->_dispatch_name('readproject2');
    ok(!defined $r, 'Must fail: malformed name, inappropriate object naming');
    
    $r = $redminer->_dispatch_name('project', { id => 1 });
    ok(!defined $r, 'Must fail: malformed object ID');
    
    $r = $redminer->_dispatch_name('createProject');
    ok(!defined $r, 'Must fail: malformed name, missing data argument for a create/update method');
    
    $r = $redminer->_dispatch_name('updateProject', 1);
    ok(!defined $r, 'Must fail: malformed name, missing data argument for a create/update method');
    
    $r = $redminer->_dispatch_name('createProject', 1, 'scalar');
    ok(!defined $r, 'Must fail: malformed name, inappropriate data type for a create/update method');
    
    $r = $redminer->_dispatch_name('updateProject', 1, 'scalar');
    ok(!defined $r, 'Must fail: malformed name, inappropriate data type for a create/update method');
    
    #
    # Testing basic CRUD API:
    # * List existing objects (possibly with extra metadata)s
    # * Read an object (possibly with extra metadata)
    # * Create a new object
    # * Update an existing object
    # * Delete an existing object
    #
    
    $r = $redminer->_dispatch_name('projects', { limit => 10, offset => 9 });
    is_deeply($r, {
    	method => 'GET',
    	path   => 'projects',
    	content => undef,
    	query   => { limit => 10, offset => 9 },
    }, 'projects');
    
    # ditto
    $r = $redminer->_dispatch_name('Projects', { limit => 10, offset => 9 });
    is_deeply($r, {
    	method => 'GET',
    	path   => 'projects',
    	content => undef,
    	query   => { limit => 10, offset => 9 },
    }, 'projects');
    
    # ditto
    $r = $redminer->_dispatch_name('getProjects', { limit => 10, offset => 9 });