2014-05-19 06:06:09 -04:00
|
|
|
require 'helper'
|
|
|
|
require 'jobs/gid_job'
|
2015-08-05 15:55:42 -04:00
|
|
|
require 'jobs/hello_job'
|
2014-05-19 06:06:09 -04:00
|
|
|
require 'models/person'
|
2016-03-09 12:28:16 -05:00
|
|
|
require 'json'
|
2014-05-19 06:06:09 -04:00
|
|
|
|
|
|
|
class JobSerializationTest < ActiveSupport::TestCase
|
|
|
|
setup do
|
2014-08-17 09:23:24 -04:00
|
|
|
JobBuffer.clear
|
2014-05-19 06:06:09 -04:00
|
|
|
@person = Person.find(5)
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'serialize job with gid' do
|
2014-08-25 10:34:50 -04:00
|
|
|
GidJob.perform_later @person
|
2014-08-17 09:23:24 -04:00
|
|
|
assert_equal "Person with ID: 5", JobBuffer.last_value
|
2014-05-19 06:06:09 -04:00
|
|
|
end
|
2015-07-07 15:52:28 -04:00
|
|
|
|
|
|
|
test 'serialize includes current locale' do
|
2016-03-09 11:56:21 -05:00
|
|
|
assert_equal 'en', HelloJob.new.serialize['locale']
|
2015-07-07 15:52:28 -04:00
|
|
|
end
|
|
|
|
|
2016-03-09 12:28:16 -05:00
|
|
|
test 'serialize and deserialize are symmetric' do
|
|
|
|
# Round trip a job in memory only
|
|
|
|
h1 = HelloJob.new
|
|
|
|
h1.deserialize(h1.serialize)
|
|
|
|
|
|
|
|
# Now verify it's identical to a JSON round trip.
|
|
|
|
# We don't want any non-native JSON elements in the job hash,
|
|
|
|
# like symbols.
|
|
|
|
payload = JSON.dump(h1.serialize)
|
|
|
|
h2 = HelloJob.new
|
|
|
|
h2.deserialize(JSON.load(payload))
|
|
|
|
assert_equal h1.serialize, h2.serialize
|
|
|
|
end
|
|
|
|
|
2015-07-07 15:52:28 -04:00
|
|
|
test 'deserialize sets locale' do
|
|
|
|
job = HelloJob.new
|
2016-03-09 11:56:21 -05:00
|
|
|
job.deserialize 'locale' => 'es'
|
|
|
|
assert_equal 'es', job.locale
|
2015-07-07 15:52:28 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
test 'deserialize sets default locale' do
|
|
|
|
job = HelloJob.new
|
|
|
|
job.deserialize({})
|
2016-03-09 12:28:16 -05:00
|
|
|
assert_equal 'en', job.locale
|
2015-07-07 15:52:28 -04:00
|
|
|
end
|
2014-05-19 06:06:09 -04:00
|
|
|
end
|