CMS-Drupal-Modules-MembershipEntity

 view release on metacpan or  search on metacpan

t/60_membership_object_params.t  view on Meta::CPAN

#! perl
use strict;
use warnings;

BEGIN {
  ## Make sure we don't connect to our real DB if we
  ## have given the credentials for it
  $ENV{'DRUPAL_IGNORE_TEST_CREDS'} = 1;
}

use Test::More tests => 2;
use Test::Group;
use Test::Exception;

use CMS::Drupal;
use CMS::Drupal::Modules::MembershipEntity;
use CMS::Drupal::Modules::MembershipEntity::Test;

my $drupal = CMS::Drupal->new;
my $dbh    = build_test_db( $drupal );
my $ME     = CMS::Drupal::Modules::MembershipEntity->new( dbh => $dbh );

# test the object, parameters

subtest 'fetch_memberships() returns ::Membership objects', sub {
  plan tests => 3;
  for ([3694], [3694, 2966], []) {
    my $array = $_;
    my $hashref = $ME->fetch_memberships( @{ $array } );
    test 'isa valid object for '. @$array .' mids', sub {
      if (@$array == 1) {
        # we don't have a hashref but an object
        my $mem = $hashref;
        isa_ok( $mem, 'CMS::Drupal::Modules::MembershipEntity::Membership' );
      } else {
        foreach my $mem ( values %{ $hashref } ) {
          isa_ok( $mem, 'CMS::Drupal::Modules::MembershipEntity::Membership' );
        }
      }
    }; 
  }
};

subtest 'Manually create a ::Membership object', sub {
  plan tests => 11;
 
  my %params = (
    'mid'       => 666,
    'member_id' => 999,
    'type'      => 'membership',
    'status'    => 1,
    'uid'       => 6996,
    'created'   => 1379916000,
    'changed'   => 1379987654,
    'terms'     => { 23456 => bless( {}, 'CMS::Drupal::Modules::MembershipEntity::Term' ) },
  );  
  
  dies_ok { my $mem = CMS::Drupal::Modules::MembershipEntity::Membership->new }
      'Correctly fail to create an object with no parameters provided.';

  foreach my $param (keys %params) {
    my %args = %params;
    delete $args{ $param };
    dies_ok { my $mem = CMS::Drupal::Modules::MembershipEntity::Membership->new( \%args ) }
      "Correctly fail to create object with missing parameter: $param";
  }



( run in 0.649 second using v1.01-cache-2.11-cpan-39bf76dae61 )