Files
linguist/samples/Ruby/any.spec

45 lines
1.3 KiB
Ruby

require File.dirname(File.expand_path(__FILE__)) + '/../spec_helper'
describe Spira::Types::Any do
before :all do
@uri = RDF::URI('http://example.org')
end
# this spec is going to be necessarily loose. The 'Any' type is defined to
# use RDF.rb's automatic RDF Literal boxing and unboxing, which may or may
# not change between verions.
#
context "when serializing" do
it "should serialize literals to RDF Literals" do
serialized = Spira::Types::Any.serialize(15)
serialized.should be_a RDF::Literal
serialized = Spira::Types::Any.serialize("test")
serialized.should be_a RDF::Literal
end
it "should keep RDF::URIs as URIs" do
Spira::Types::Any.serialize(@uri).should == @uri
end
it "should fail to serialize collections" do
lambda { Spira::Types::Any.serialize([]) }.should raise_error TypeError
end
end
context "when unserializing" do
it "should unserialize to ruby types" do
value = Spira::Types::Any.unserialize(RDF::Literal.new(5, :datatype => RDF::XSD.integer))
value.should == 5
value = Spira::Types::Any.unserialize(RDF::Literal.new("a string"))
value.should == "a string"
end
it "should unserialize URIs to URIs" do
Spira::Types::Any.unserialize(@uri).should == @uri
end
end
end