spec/resource_spec.rb in rcap-0.3 vs spec/resource_spec.rb in rcap-0.4
- old
+ new
@@ -1,18 +1,18 @@
-require 'spec/spec_helper'
+require 'spec_helper'
describe( RCAP::Resource ) do
context( 'on initialisation' ) do
before( :each ) do
@resource = RCAP::Resource.new
end
- it( 'should have no mime_type' ){ @resource.mime_type.should( be_nil )}
- it( 'should have no size' ){ @resource.size.should( be_nil )}
- it( 'should have no uri' ){ @resource.uri.should( be_nil )}
- it( 'should have no deref_uri' ){ @resource.deref_uri.should( be_nil )}
- it( 'should have no digest' ){ @resource.digest.should( be_nil )}
+ it( 'should have no mime_type' ){ @resource.mime_type.should( be_nil )}
+ it( 'should have no size' ){ @resource.size.should( be_nil )}
+ it( 'should have no uri' ){ @resource.uri.should( be_nil )}
+ it( 'should have no deref_uri' ){ @resource.deref_uri.should( be_nil )}
+ it( 'should have no digest' ){ @resource.digest.should( be_nil )}
it( 'should have no resource_desc' ){ @resource.resource_desc.should( be_nil )}
context( 'from XML' ) do
before( :each ) do
@original_resource = RCAP::Resource.new
@@ -53,9 +53,91 @@
end
it( 'should parse digest correctly' ) do
@resource.digest.should == @original_resource.digest
end
+ end
+
+
+ context( 'from a hash' ) do
+ before( :each ) do
+ @original_resource = RCAP::Resource.new
+ @original_resource.resource_desc = "Image of incident"
+ @original_resource.uri = "http://capetown.gov.za/cap/resources/image.png"
+ @original_resource.mime_type = 'image/png'
+ @original_resource.deref_uri = "IMAGE DATA"
+ @original_resource.size = "20480"
+ @original_resource.digest = "2048"
+
+ @resource = RCAP::Resource.from_h( @original_resource.to_h )
+ end
+
+ it( 'should parse resource_desc correctly' ) do
+ @resource.resource_desc.should == @original_resource.resource_desc
+ end
+
+ it( 'should parse uri correctly' ) do
+ @resource.uri.should == @original_resource.uri
+ end
+
+ it( 'should parse mime_type correctly' ) do
+ @resource.mime_type.should == @original_resource.mime_type
+ end
+
+ it( 'should parse deref_uri correctly' ) do
+ @resource.deref_uri.should == @original_resource.deref_uri
+ end
+
+ it( 'should parse size correctly' ) do
+ @resource.size.should == @original_resource.size
+ end
+
+ it( 'should parse digest correctly' ) do
+ @resource.digest.should == @original_resource.digest
+ end
+ end
+
+ end
+
+ context( 'when exported' ) do
+ before( :each ) do
+ @resource = RCAP::Resource.new
+ @resource.resource_desc = "Image of incident"
+ @resource.uri = "http://capetown.gov.za/cap/resources/image.png"
+ @resource.mime_type = 'image/png'
+ @resource.deref_uri = "IMAGE DATA"
+ @resource.size = "20480"
+ @resource.digest = "2048"
+ end
+
+ context( 'to a hash' ) do
+ before( :each ) do
+ @resource_hash = @resource.to_h
+ end
+
+ it( 'should set the resource description' ) do
+ @resource_hash[ RCAP::Resource::RESOURCE_DESC_KEY ].should == @resource.resource_desc
+ end
+
+ it( 'should set the mime type' ) do
+ @resource_hash[ RCAP::Resource::MIME_TYPE_KEY ].should == @resource.mime_type
+ end
+
+ it( 'should set the size' ) do
+ @resource_hash[ RCAP::Resource::SIZE_KEY ].should == @resource.size
+ end
+
+ it( 'should set the URI' ) do
+ @resource_hash[ RCAP::Resource::URI_KEY ].should == @resource.uri
+ end
+
+ it( 'should set the dereferenced URI' ) do
+ @resource_hash[ RCAP::Resource::DEREF_URI_KEY ].should == @resource.deref_uri
+ end
+
+ it( 'should set the digest' ) do
+ @resource_hash[ RCAP::Resource::DIGEST_KEY ].should == @resource.digest
+ end
end
end
context( 'which is valid' ) do
before( :each ) do