diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/cases/job_serialization_test.rb | 15 | ||||
-rw-r--r-- | test/cases/parameters_test.rb | 31 | ||||
-rw-r--r-- | test/jobs/gid_job.rb | 6 | ||||
-rw-r--r-- | test/models/person.rb | 19 |
4 files changed, 71 insertions, 0 deletions
diff --git a/test/cases/job_serialization_test.rb b/test/cases/job_serialization_test.rb new file mode 100644 index 0000000000..b1e24db22e --- /dev/null +++ b/test/cases/job_serialization_test.rb @@ -0,0 +1,15 @@ +require 'helper' +require 'jobs/gid_job' +require 'models/person' + +class JobSerializationTest < ActiveSupport::TestCase + setup do + $BUFFER = [] + @person = Person.find(5) + end + + test 'serialize job with gid' do + GidJob.enqueue @person + assert_equal "Person with ID: 5", $BUFFER.pop + end +end diff --git a/test/cases/parameters_test.rb b/test/cases/parameters_test.rb new file mode 100644 index 0000000000..eafa5a052b --- /dev/null +++ b/test/cases/parameters_test.rb @@ -0,0 +1,31 @@ +require 'helper' +require 'active_job/parameters' +require 'models/person' + +class ParameterSerializationTest < ActiveSupport::TestCase + test 'should make no change to regular values' do + assert_equal [ 1, "something" ], ActiveJob::Parameters.serialize([ 1, "something" ]) + end + + test 'should serialize records with global id' do + assert_equal [ Person.find(5).gid ], ActiveJob::Parameters.serialize([ Person.find(5) ]) + end + + test 'should serialize values and records together' do + assert_equal [ 3, Person.find(5).gid ], ActiveJob::Parameters.serialize([ 3, Person.find(5) ]) + end +end + +class ParameterDeserializationTest < ActiveSupport::TestCase + test 'should make no change to regular values' do + assert_equal [ 1, "something" ], ActiveJob::Parameters.deserialize([ 1, "something" ]) + end + + test 'should deserialize records with global id' do + assert_equal [ Person.find(5) ], ActiveJob::Parameters.deserialize([ Person.find(5).gid ]) + end + + test 'should serialize values and records together' do + assert_equal [ 3, Person.find(5) ], ActiveJob::Parameters.deserialize([ 3, Person.find(5).gid ]) + end +end diff --git a/test/jobs/gid_job.rb b/test/jobs/gid_job.rb new file mode 100644 index 0000000000..c1bfbb2655 --- /dev/null +++ b/test/jobs/gid_job.rb @@ -0,0 +1,6 @@ +class GidJob < ActiveJob::Base + def self.perform(person) + $BUFFER << "Person with ID: #{person.id}" + end +end +
\ No newline at end of file diff --git a/test/models/person.rb b/test/models/person.rb new file mode 100644 index 0000000000..6e91e8b9a2 --- /dev/null +++ b/test/models/person.rb @@ -0,0 +1,19 @@ +require 'active_model/global_identification' + +class Person + include ActiveModel::GlobalIdentification + + attr_reader :id + + def self.find(id) + new(id) + end + + def initialize(id) + @id = id + end + + def ==(other_person) + other_person.is_a?(Person) && id = other_person.id + end +end
\ No newline at end of file |