require 'spec_helper'
describe ActivityStreams::Activity do
let :required_attributes do
{
:actor => ActivityStreams::Object.new(:display_name => 'Nov Matake'),
:published => Time.now
}
end
let :optional_attributes do
{
:id => 'activitystrea.ms/activity/foo',
:object => ActivityStreams::Object.new,
:target => ActivityStreams::Object.new,
:title => 'Title',
:content => 'Content',
:provider => ActivityStreams::Object.new,
:generator => ActivityStreams::Object.new,
:icon => ActivityStreams::MediaLink.new(:url => 'http://example.com/images/icon.png'),
:updated => Time.now,
:url => 'activitystrea.ms/activity/bar'
}
end
let(:valid_attributes) { required_attributes.merge(optional_attributes) }
context 'when missing attributes' do
it do
expect { ActivityStreams::Activity.new }.should raise_error AttrRequired::AttrMissing
end
end
context 'otherwise' do
it do
expect { ActivityStreams::Activity.new required_attributes }.should_not raise_error AttrRequired::AttrMissing
end
end
context 'when invalid attributes given' do
it do
expect do
ActivityStreams::Activity.new valid_attributes.merge(:icon => 'http://example.com/images/icon.png')
end.should raise_error ActivityStreams::InvalidAttribute
end
end
context 'otherwise' do
it do
expect { ActivityStreams::Activity.new valid_attributes }.should_not raise_error AttrRequired::AttrMissing
end
end
end