Sha256: 2221450704aa7a56353af7cda0da42376769429f675928ef06e283c2a05023d9

Contents?: true

Size: 1.72 KB

Versions: 11

Compression:

Stored size: 1.72 KB

Contents

require 'spec_helper'
describe Seko::Response do

  let(:guid)             { 'f66fd245-7b9e-4fd2-9dbf-5631edc875d9' }
  let(:failed_response)  { "{\n \"CallStatus\": {\n \"Success\": false, \"Message\": \"Failed!\" } }" }
  let(:errant_raw)       { "{\n \"CallStatus\": {\n \"Success\": true, \"Message\": {} }, \"GUID\": \"#{guid}\" }" }
  let(:raw_response)     { "{\"Response\": #{errant_raw}}" }
  let(:parsed_response)  { JSON.parse(raw_response) }
  let(:response)         { Seko::Response.new(raw_response) }
  let(:errant_response)  { Seko::Response.new(errant_raw) }
  let(:failure_response) { Seko::Response.new(failed_response) }

  describe '#initialize' do
    it 'sets the raw and parsed response' do
      expect(response.raw).to eq(raw_response)
      expect(response.parsed).to eq(parsed_response)
    end
  end

  describe '#root_response' do
    it 'fixes an issue in the API were sometimes the "Response" object is present and sometimes it is not' do
      expect(errant_response.root_response).to eq(response.root_response)
    end
  end

  describe '#success?' do
    it 'checks and returns the proper field in repsonse object for success' do
      expect(response.success?).to be(true)
      expect(failure_response.success?).to be(false)
    end
  end

  describe '#failure?' do
    it 'is the opposite of success' do
      expect(response.failure?).to be(false)
      expect(failure_response.failure?).to be(true)
    end
  end

  describe '#message' do
    it 'returns the message of the repsonse' do
      expect(failure_response.message).to eq('Failed!')
      expect(response.message).to eq('')
    end
  end

  describe '#guid' do
    it 'returns the GUID from the response' do
      expect(response.guid).to eq(guid)
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
seko-0.0.11 spec/lib/response_spec.rb
seko-0.0.10 spec/lib/response_spec.rb
seko-0.0.9 spec/lib/response_spec.rb
seko-0.0.8 spec/lib/response_spec.rb
seko-0.0.7 spec/lib/response_spec.rb
seko-0.0.6 spec/lib/response_spec.rb
seko-0.0.5 spec/lib/response_spec.rb
seko-0.0.4 spec/lib/response_spec.rb
seko-0.0.3 spec/lib/response_spec.rb
seko-0.0.2 spec/lib/response_spec.rb
seko-0.0.1 spec/lib/response_spec.rb