From b95b241302dd54a834f68ef762f4ffa803836973 Mon Sep 17 00:00:00 2001 From: Mauricio Giacomini Girardello <mauriciogiacomini4@gmail.com> Date: Thu, 19 Nov 2015 10:29:59 -0200 Subject: [PATCH] serializing complaint model for orientdb --- app/models/complaint.rb | 9 ++++++-- test/models/complaint_test.rb | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 test/models/complaint_test.rb diff --git a/app/models/complaint.rb b/app/models/complaint.rb index f5815c16..b87bc2ab 100644 --- a/app/models/complaint.rb +++ b/app/models/complaint.rb @@ -1,8 +1,9 @@ class Complaint include ActiveModel::Model + include OrientDbSerializable - attr_accessor :user,:object,:message,:description - validates_presence_of :user,:object,:message + attr_accessor :user, :object, :message, :description + validates_presence_of :user, :object, :message def self.copyrights ComplaintMessage.new("Objeto viola direitos autorais") @@ -19,4 +20,8 @@ class Complaint def self.fake_user ComplaintMessage.new "Usuário falso" end + + def to_orientdb_hash + super.merge("user" => @user.rid, "object" => @object.id, "message" => @message.to_s) + end end diff --git a/test/models/complaint_test.rb b/test/models/complaint_test.rb new file mode 100644 index 00000000..7c4d13ca --- /dev/null +++ b/test/models/complaint_test.rb @@ -0,0 +1,41 @@ +require 'test_helper' + +class ComplaintTest < ActiveSupport::TestCase + should validate_presence_of :user + should validate_presence_of :object + should validate_presence_of :message + + test 'serialize for orientdb' do + complaint = Complaint.new( + user: User.new(rid: '#14:15'), + object: LearningObject.new(id: '#16:43'), + message: Complaint.copyrights, + description: 'teste' + ) + + expected_hash = {"@class" => "Complaint", "user" => complaint.user.rid, "object" => complaint.object.id, "description" => complaint.description, "message" => complaint.message.to_s} + assert_equal(expected_hash, complaint.to_orientdb_hash) + end + + test 'should returns copyright message' do + assert_complaint_message Complaint.copyrights + end + + test 'should returns ofensive content message' do + assert_complaint_message Complaint.ofensive_content + end + + test 'should returns ofensive user message' do + assert_complaint_message Complaint.ofensive_user + end + + test 'should returns fake user message' do + assert_complaint_message Complaint.fake_user + end + + private + + def assert_complaint_message(complaint_message) + assert_instance_of ComplaintMessage, complaint_message + end +end -- GitLab