diff --git a/lib/diaspora_federation/validators/conversation_validator.rb b/lib/diaspora_federation/validators/conversation_validator.rb index 0a642ec..35a8c04 100644 --- a/lib/diaspora_federation/validators/conversation_validator.rb +++ b/lib/diaspora_federation/validators/conversation_validator.rb @@ -6,6 +6,8 @@ module DiasporaFederation rule :guid, :guid + rule :messages, :not_nil + rule :author, %i(not_empty diaspora_id) rule :participants, diaspora_id_count: {maximum: 20} diff --git a/lib/diaspora_federation/validators/status_message_validator.rb b/lib/diaspora_federation/validators/status_message_validator.rb index 12ccdc3..03df263 100644 --- a/lib/diaspora_federation/validators/status_message_validator.rb +++ b/lib/diaspora_federation/validators/status_message_validator.rb @@ -8,6 +8,8 @@ module DiasporaFederation rule :guid, :guid + rule :photos, :not_nil + rule :public, :boolean end end diff --git a/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb b/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb index 4170ed4..4def7a0 100644 --- a/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/conversation_validator_spec.rb @@ -13,7 +13,15 @@ module DiasporaFederation let(:property) { :guid } end - describe "participant_ids" do + describe "#messages" do + it_behaves_like "a property with a value validation/restriction" do + let(:property) { :messages } + let(:wrong_values) { [nil] } + let(:correct_values) { [[], [FactoryGirl.build(:message_entity)]] } + end + end + + describe "#participant_ids" do # must not contain more than 20 participant handles it_behaves_like "a property with a value validation/restriction" do let(:property) { :participants } diff --git a/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb b/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb index f335064..e4f2cd1 100644 --- a/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/status_message_validator_spec.rb @@ -13,6 +13,14 @@ module DiasporaFederation let(:property) { :guid } end + describe "#photos" do + it_behaves_like "a property with a value validation/restriction" do + let(:property) { :photos } + let(:wrong_values) { [nil] } + let(:correct_values) { [[], [FactoryGirl.build(:photo_entity)]] } + end + end + it_behaves_like "a boolean validator" do let(:property) { :public } end diff --git a/spec/support/shared_validator_specs.rb b/spec/support/shared_validator_specs.rb index a78c93c..aee80df 100644 --- a/spec/support/shared_validator_specs.rb +++ b/spec/support/shared_validator_specs.rb @@ -1,5 +1,6 @@ def entity_stub(entity, data={}) - OpenStruct.new(FactoryGirl.attributes_for(entity).merge(data)) + OpenStruct.new(FactoryGirl.factory_by_name(entity).build_class.default_values + .merge(FactoryGirl.attributes_for(entity)).merge(data)) end ALPHANUMERIC_RANGE = [*"0".."9", *"A".."Z", *"a".."z"].freeze