Sha256: 05ebbfa643895c71e9278cb635d405721b4287e072236aa8902363b06b33ab2b

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

require 'spec_helper'

describe VkontakteApi::Method do
  describe "#call" do
    before(:each) do
      @full_name = double("Full method name")
      @args      = double("Method arguments")
      @token     = double("Access token")
      
      @method = VkontakteApi::Method.new('some_name')
      @method.stub(:full_name).and_return(@full_name)
      @method.stub(:token).and_return(@token)
      VkontakteApi::Result.stub(:process)
    end
    
    it "calls API.call with full name, args and token" do
      VkontakteApi::API.should_receive(:call).with(@full_name, @args, @token)
      @method.call(@args)
    end
    
    it "sends the response to Result.process" do
      response = double("VK response")
      VkontakteApi::API.stub(:call).and_return(response)
      type = double("Type")
      @method.stub(:type).and_return(type)
      
      VkontakteApi::Result.should_receive(:process).with(response, type, nil)
      @method.call(@args)
    end
  end
  
  describe "#full_name" do
    before(:each) do
      resolver = Hashie::Mash.new(name: 'name_space')
      @name = 'name'
      @method = VkontakteApi::Method.new(@name, resolver: resolver)
    end
    
    it "sends each part to #camelize" do
      @method.send(:full_name).should == 'nameSpace.name'
    end
  end
  
  describe "#type" do
    context "with a usual name" do
      it "returns :anything" do
        method = VkontakteApi::Method.new('get')
        method.send(:type).should == :anything
      end
    end
    
    context "with a predicate name" do
      it "returns :boolean" do
        method = VkontakteApi::Method.new('is_app_user?')
        method.send(:type).should == :boolean
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vkontakte_api-1.2 spec/vkontakte_api/method_spec.rb