Google-RestApi

 view release on metacpan or  search on metacpan

t/unit/Test/Google/RestApi/DriveApi3/Drive.pm  view on Meta::CPAN

    'hide() without ID should throw';

  throws_ok sub { $drive->unhide() },
    qr/Drive ID required/i,
    'unhide() without ID should throw';

  return;
}

sub accessors : Tests(2) {
  my $self = shift;

  my $drive = Drive->new(drive_api => mock_drive_api(), id => 'drive123');
  is $drive->drive_id(), 'drive123', 'drive_id returns correct ID';
  isa_ok $drive->drive_api(), 'Google::RestApi::DriveApi3', 'drive_api returns DriveApi3';

  return;
}

sub get_drive : Tests(2) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 2 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->get(), 'get() returns result';
    ok $result->{id}, 'get() returns drive id';
  }

  return;
}

sub get_with_fields : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->get(fields => 'name,id'), 'get() with fields returns result';
  }

  return;
}

sub get_with_domain_admin : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->get(use_domain_admin_access => 1),
      'get() with use_domain_admin_access returns result';
  }

  return;
}

sub update_drive : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->update(name => 'Renamed Drive'),
      'update() with name returns result';
  }

  return;
}

sub update_with_options : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->update(
      name      => 'Styled Drive',
      color_rgb => '#FF0000',
      theme_id  => 'theme1',
      background_image_file => { id => 'img123' },
      restrictions => { adminManagedRestrictions => JSON::MaybeXS::true() },
      use_domain_admin_access => 1,
    ), 'update() with all options returns result';
  }

  return;
}

sub delete_drive : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    lives_ok sub { $drive->delete() }, 'delete() lives';
  }

  return;
}

sub delete_with_options : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    lives_ok sub {
      $drive->delete(
        use_domain_admin_access => 1,
        allow_item_deletion     => 1,
      )
    }, 'delete() with options lives';
  }

  return;
}

sub hide_drive : Tests(1) {
  my $self = shift;

  SKIP: {
    skip "No shared drives available", 1 if $self->{_skip_drive_tests};

    my $drive = $self->_mock_drive();
    ok my $result = $drive->hide(), 'hide() returns result';
  }



( run in 2.347 seconds using v1.01-cache-2.11-cpan-5735350b133 )