Sha256: 5eb29cf676d665ea3f7b7f54ed3edf3f887cefb63d0f44a446d550ae59a49021

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 KB

Contents

require 'spec_helper'

describe Sisow::Api::Callback do

  before :each do
    @transaction_id = 'trx-123'
    @entrance_code  = 'entrancecode'
    @status = 'Success'
    @sha1 = Digest::SHA1.hexdigest(
      [
        @transaction_id,
        @entrance_code,
        @status,
        Sisow.configuration.merchant_id,
        Sisow.configuration.merchant_key
      ].join
    )

    @callback = Sisow::Api::Callback.new(
      :transaction_id => @transaction_id,
      :entrance_code  => @entrance_code,
      :status => @status,
      :sha1 => @sha1
    )
  end

  it "should be valid" do
    @callback = Sisow::Api::Callback.new(
      :transaction_id => @transaction_id,
      :entrance_code  => @entrance_code,
      :status => @status,
      :sha1 => @sha1
    )

    @callback.valid?.should == true
    lambda { @callback.validate! }.should_not raise_error
    @callback.validate!.should == true
  end

  it "should raise an error when invalid" do
    @callback = Sisow::Api::Callback.new(
      :transaction_id => @transaction_id,
      :entrance_code  => @entrance_code,
      :status => @status,
      :sha1 => 'fake-hash'
    )

    @callback.valid?.should == false
    lambda { @callback.validate! }.should raise_error(Sisow::Exception, "This callback is forged")
  end

  describe "transaction status" do
    it "should be success" do
      @callback.success?.should == true
    end

    it "should be expired" do
      @callback.status = 'Expired'
      @callback.expired?.should == true
    end

    it "should be cancelled" do
      @callback.status = 'Cancelled'
      @callback.cancelled?.should == true
    end

    it "should be failure" do
      @callback.status = 'Failure'
      @callback.failure?.should == true
    end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sisow-1.1.1 spec/models/callback_spec.rb
sisow-1.1.0 spec/models/callback_spec.rb
sisow-1.0.1 spec/models/callback_spec.rb
sisow-1.0.0 spec/models/callback_spec.rb
sisow-0.9.9 spec/models/callback_spec.rb
sisow-0.9.5 spec/models/callback_spec.rb