1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
require "spec_helper"
module Fog
module Storage
def self.require(*_args); end
end
end
describe "Fog::Storage" do
describe "#new" do
module Fog
module TheRightWay
class Storage
def initialize(_args); end
end
end
end
module Fog
module TheRightWay
extend Provider
service(:storage, "Storage")
end
end
it "instantiates an instance of Fog::<Provider>::Storage from the :provider keyword arg" do
compute = Fog::Storage.new(provider: :therightway)
assert_instance_of(Fog::TheRightWay::Storage, compute)
end
module Fog
module Storage
class TheWrongWay
def initialize(_args); end
end
end
module TheWrongWay
extend Provider
service(:storage, "Storage")
end
end
it "instantiates an instance of Fog::Storage::<Provider> from the :provider keyword arg" do
compute = Fog::Storage.new(provider: :thewrongway)
assert_instance_of(Fog::Storage::TheWrongWay, compute)
end
module Fog
module BothWays
class Storage
attr_reader :args
def initialize(args)
@args = args
end
end
end
end
module Fog
module Storage
class BothWays
def initialize(_args); end
end
end
end
module Fog
module BothWays
extend Provider
service(:storage, "Storage")
end
end
describe "when both Fog::Storage::<Provider> and Fog::<Provider>::Storage exist" do
it "prefers Fog::Storage::<Provider>" do
compute = Fog::Storage.new(provider: :bothways)
assert_instance_of(Fog::BothWays::Storage, compute)
end
end
it "passes the supplied keyword args less :provider to Fog::Storage::<Provider>#new" do
compute = Fog::Storage.new(provider: :bothways, extra: :stuff)
assert_equal({ extra: :stuff }, compute.args)
end
it "raises ArgumentError when given a :provider where a Fog::Storage::Provider that does not exist" do
assert_raises(ArgumentError) do
Fog::Storage.new(provider: :wat)
end
end
end
describe ".get_body_size" do
it "doesn't alter the encoding of the string passed to it" do
body = "foo".encode("UTF-8")
Fog::Storage.get_body_size(body)
assert_equal("UTF-8", body.encoding.to_s)
end
it "respects frozen strings" do
if RUBY_VERSION >= "2.3.0"
body = "foo".freeze
Fog::Storage.get_body_size(body)
else
skip
end
end
end
end
|