Skip to content

Commit

Permalink
adding coverage to VersionContextService
Browse files Browse the repository at this point in the history
  • Loading branch information
bwillis committed Mar 9, 2015
1 parent fbe9705 commit cc9a7d8
Showing 1 changed file with 74 additions and 2 deletions.
76 changes: 74 additions & 2 deletions spec/unit/version_context_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,83 @@

describe VersionCake::VersionContextService do

let(:resource_user) do
double('user_resource',
uri: %r{user},
supported_versions: [5,6,7],
deprecated_versions: [3,4,5],
obsolete_versions: [1,2]
)
end
let(:resource_all) do
double('default',
uri: %r{.*},
supported_versions: [6,7],
deprecated_versions: [3,4,5],
obsolete_versions: [1,2]
)
end
let(:config) do
double('config',
versioned_resources: [resource_user, resource_all],
missing_version: 9,
extraction_strategies: [
VersionCake::CustomStrategy.new(lambda{ |req| req.version })
]
)
end
let(:service) { described_class.new(config) }

describe '#create_context_from_request' do
xit {}
let(:request) { double(version: 5, path: 'users/123') }
subject(:context) { service.create_context_from_request(request) }

it { expect(context.version).to eq 5 }
it { expect(context.resource).to eq resource_user }
it { expect(context.result).to eq :supported }

context 'for a deprecated version' do
let(:request) { double(version: 5, path: 'posts/123') }

it { expect(context.version).to eq 5 }
it { expect(context.resource).to eq resource_all }
it { expect(context.result).to eq :deprecated }
end

context 'for an obsolete version' do
let(:request) { double(version: 2, path: 'users/123') }

it { expect(context.version).to eq 2 }
it { expect(context.resource).to eq resource_user }
it { expect(context.result).to eq :obsolete }
end
end

describe '#create_context' do
xit {}
let(:uri) { 'users/21' }
let(:version) { 5 }
subject(:context) { service.create_context(uri, version) }

it { expect(context.version).to eq 5 }
it { expect(context.resource).to eq resource_user }
it { expect(context.result).to eq :supported }

context 'for a deprecated version' do
let(:uri) { 'posts/21' }
let(:version) { 5 }

it { expect(context.version).to eq 5 }
it { expect(context.resource).to eq resource_all }
it { expect(context.result).to eq :deprecated }
end

context 'for an obsolete version' do
let(:uri) { 'posts/21' }
let(:version) { 2 }

it { expect(context.version).to eq 2 }
it { expect(context.resource).to eq resource_all }
it { expect(context.result).to eq :obsolete }
end
end
end

0 comments on commit cc9a7d8

Please sign in to comment.