spec/active_triples/properties_spec.rb in active-triples-0.6.1 vs spec/active_triples/properties_spec.rb in active-triples-0.7.0
- old
+ new
@@ -10,15 +10,25 @@
after do
Object.send(:remove_const, "DummyProperties")
end
describe '#property' do
- it 'should set a property' do
+ it 'should set a property as a NodeConfig' do
DummyProperties.property :title, :predicate => RDF::DC.title
expect(DummyProperties.reflect_on_property(:title)).to be_kind_of ActiveTriples::NodeConfig
end
+ it 'should set the correct property' do
+ DummyProperties.property :title, :predicate => RDF::DC.title
+ expect(DummyProperties.reflect_on_property(:title).predicate).to eql RDF::DC.title
+ end
+
+ it 'should set the correct property from string' do
+ DummyProperties.property :title, :predicate => RDF::DC.title.to_s
+ expect(DummyProperties.reflect_on_property(:title).predicate).to eql RDF::DC.title
+ end
+
it 'should set index behaviors' do
DummyProperties.property :title, :predicate => RDF::DC.title do |index|
index.as :facetable, :searchable
end
expect(DummyProperties.reflect_on_property(:title)[:behaviors]).to eq [:facetable, :searchable]
@@ -40,9 +50,17 @@
end
it 'raises error when defining properties that are already methods' do
DummyProperties.send :define_method, :type, lambda { }
expect { DummyProperties.property :type, :predicate => RDF::DC.type }.to raise_error ArgumentError
+ end
+
+ it 'raises error when defining properties with no predicate' do
+ expect { DummyProperties.property :type }.to raise_error ArgumentError
+ end
+
+ it 'raises error when defining properties with a non-Roesource predicate' do
+ expect { DummyProperties.property :type, :predicate => 123 }.to raise_error ArgumentError
end
it 'raises error when defining properties already have method setters' do
DummyProperties.send :define_method, :type=, lambda { }
expect { DummyProperties.property :type, :predicate => RDF::DC.type }.to raise_error ArgumentError