require 'spec_helper' describe LinkThumbnailer::WebImage do class Foo end let(:foo) { Foo.new } before do foo.extend LinkThumbnailer::WebImage end subject { foo } it { should respond_to :to_hash } it { should respond_to :source_url } it { should respond_to :doc } describe ".to_hash" do context "with default attributes" do let(:attributes) { [:source_url] } subject { foo.to_hash } it { subject.keys.should eq(attributes.map(&:to_sym)) } end context "with all attributes" do let(:attributes) { LinkThumbnailer.configuration.rmagick_attributes } before do attributes.each {|a| foo.class.send(:define_method, a.to_sym) { 'foo' } } end after do attributes.each {|a| foo.class.send(:undef_method, a.to_sym) } end subject { foo.to_hash } it { subject.keys.should eq(attributes.map(&:to_sym)) } it { subject.values.should include('foo') } end end end