Azure-Storage-Blob-Client

 view release on metacpan or  search on metacpan

t/Azure/Storage/Blob/Client/Call.t  view on Meta::CPAN

      is_deeply($serialized_parameters, {});
    };
  };

  Scenario 'call class with BodyParameter attributes' => sub {
    Given 'an object with BodyParameter attributes' => sub {
      $call = Azure::Storage::Blob::Client::Test::CallClassWithBodyParameters->new(
        att1 => 1,
        att2 => 2,
        att3 => 3,
      );
    };

    When 'calling \'serialize_body_parameters\' on it' => sub {
      $serialized_parameters = $call->serialize_body_parameters();
    };

    Then 'it should return the keys/values of BodyParameter attributes' => sub {
      is_deeply($serialized_parameters, {
          att2 => 2,
          att3 => 3,
      });
    };
  };

  Scenario 'call class with all types of parameter attributes' => sub {
    Given 'an object with URIParamater, BodyParameter & BodyParameter attributes' => sub {
      $call = Azure::Storage::Blob::Client::Test::CallClassWithAllParameters->new(
        att1 => 1,
        att2 => 2,
        att3 => 3,
        att4 => 4,
        att5 => 5,
      );
    };

    When 'calling \'serialize_body_parameters\' on it' => sub {
      $serialized_parameters = $call->serialize_body_parameters();
    };

    Then 'it should return the keys/values of BodyParameter attributes' => sub {
      is_deeply($serialized_parameters, {
          att3 => 3,
          att4 => 4,
      });
    };
  };
};

package Azure::Storage::Blob::Client::Test::CallClassWithNoParameters {
  use Moose;
  with 'Azure::Storage::Blob::Client::Call';

  has att1 => (is => 'ro', isa => 'Any', required => 1);
  has att2 => (is => 'ro', isa => 'Any', required => 1);
  has att3 => (is => 'ro', isa => 'Any', required => 1);

  # required by Call role
  sub operation {}
  sub method {}
  sub endpoint {}
};

package Azure::Storage::Blob::Client::Test::CallClassWithURIParameters {
  use Moose;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::URIParameter;
  with 'Azure::Storage::Blob::Client::Call';

  has att1 => (is => 'ro', isa => 'Any', required => 1);
  has att2 => (is => 'ro', isa => 'Any', traits => ['URIParameter'], required => 1);
  has att3 => (is => 'ro', isa => 'Any', traits => ['URIParameter'], required => 1);

  # required by Call role
  sub operation {}
  sub method {}
  sub endpoint {}
};

package Azure::Storage::Blob::Client::Test::CallClassWithHeaderParameters {
  use Moose;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::HeaderParameter;
  with 'Azure::Storage::Blob::Client::Call';

  has att1 => (is => 'ro', isa => 'Any', required => 1);
  has att2 => (is => 'ro', isa => 'Any', traits => ['HeaderParameter'], header_name => 'h2', required => 1);
  has att3 => (is => 'ro', isa => 'Any', traits => ['HeaderParameter'], header_name => 'h3', required => 1);

  # required by Call role
  sub operation {}
  sub method {}
  sub endpoint {}
};

package Azure::Storage::Blob::Client::Test::CallClassWithBodyParameters {
  use Moose;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::BodyParameter;
  with 'Azure::Storage::Blob::Client::Call';

  has att1 => (is => 'ro', isa => 'Any', required => 1);
  has att2 => (is => 'ro', isa => 'Any', traits => ['BodyParameter'], required => 1);
  has att3 => (is => 'ro', isa => 'Any', traits => ['BodyParameter'], required => 1);

  # required by Call role
  sub operation {}
  sub method {}
  sub endpoint {}
};

package Azure::Storage::Blob::Client::Test::CallClassWithAllParameters {
  use Moose;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::URIParameter;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::HeaderParameter;
  use Azure::Storage::Blob::Client::Meta::Attribute::Custom::Trait::BodyParameter;
  with 'Azure::Storage::Blob::Client::Call';

  has att1 => (is => 'ro', traits => ['URIParameter'], required => 1);
  has att2 => (is => 'ro', traits => ['HeaderParameter'], header_name => 'h2', required => 1);
  has att3 => (is => 'ro', traits => ['BodyParameter'], required => 1);
  has att4 => (is => 'ro', traits => ['URIParameter', 'HeaderParameter', 'BodyParameter'], header_name => 'h4', required => 1);
  has att5 => (is => 'ro', required => 1);

  # required by Call role
  sub operation {}
  sub method {}
  sub endpoint {}
};

runtests unless caller;



( run in 1.969 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )