1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Tests top level classes interface

Currently most providers used by the `fog` binary give themselves a top
level class. This has become the place a lookup table between services
and the classes which implement them.

This adds compatibility tests for the existing behaviour to allow
controlled extraction to modules.

This top level class behaviour is due to be deprecated and removed in
fog 2.0
This commit is contained in:
Paul Thornthwaite 2015-01-03 20:51:47 +00:00
parent d8e62a60f5
commit 0ef2453fa0
3 changed files with 94 additions and 0 deletions

View file

@ -7,4 +7,28 @@ describe Atmos do
include Fog::BinSpec
let(:subject) { Atmos }
describe "#services" do
it "includes all services" do
assert_includes Atmos.services, :storage
end
end
describe "#class_for" do
describe "when requesting storage service" do
it "returns correct class" do
assert_equal Fog::Storage::Atmos, Atmos.class_for(:storage)
end
end
end
describe "#[]" do
describe "when requesting storage service" do
it "returns instance" do
Fog::Storage::Atmos.stub(:new, "instance") do
assert_equal "instance", Atmos[:storage]
end
end
end
end
end

View file

@ -7,4 +7,28 @@ describe BareMetalCloud do
include Fog::BinSpec
let(:subject) { BareMetalCloud }
describe "#services" do
it "includes all services" do
assert_includes BareMetalCloud.services, :compute
end
end
describe "#class_for" do
describe "when requesting storage service" do
it "returns correct class" do
assert_equal Fog::Compute::BareMetalCloud, BareMetalCloud.class_for(:compute)
end
end
end
describe "#[]" do
describe "when requesting compute service" do
it "returns instance" do
Fog::Compute::BareMetalCloud.stub(:new, "instance") do
assert_equal "instance", BareMetalCloud[:compute]
end
end
end
end
end

View file

@ -7,4 +7,50 @@ describe Bluebox do
include Fog::BinSpec
let(:subject) { Bluebox }
describe "#services" do
it "includes all services" do
assert_includes Bluebox.services, :compute
assert_includes Bluebox.services, :dns
assert_includes Bluebox.services, :blb
end
end
describe "#class_for" do
describe "when requesting compute service" do
it "returns correct class" do
assert_equal Fog::Compute::Bluebox, Bluebox.class_for(:compute)
end
end
describe "when requesting dns service" do
it "returns correct class" do
assert_equal Fog::DNS::Bluebox, Bluebox.class_for(:dns)
end
end
describe "when requesting blb service" do
it "returns correct class" do
assert_equal Fog::Bluebox::BLB, Bluebox.class_for(:blb)
end
end
end
describe "#[]" do
describe "when requesting compute service" do
it "returns instance" do
Fog::Compute::Bluebox.stub(:new, "instance") do
assert_equal "instance", Bluebox[:compute]
end
end
end
describe "when requesting dns service" do
it "returns instance" do
Fog::DNS::Bluebox.stub(:new, "instance") do
assert_equal "instance", Bluebox[:dns]
end
end
end
end
end