mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			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
 |