aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/cases/job_serialization_test.rb15
-rw-r--r--test/cases/parameters_test.rb31
-rw-r--r--test/jobs/gid_job.rb6
-rw-r--r--test/models/person.rb19
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