Sha256: a00d89e82d01769ec355aa4cb3c4741f08a09b0fb437d89db767b7bf187be63d
Contents?: true
Size: 1.69 KB
Versions: 2
Compression:
Stored size: 1.69 KB
Contents
require 'spec_helper' require 'json' describe Resque::Plugins::AsyncDeliver::Serializer do def serialize_and_deserialize(*args) serialization = described_class.serialize(*args) json = JSON.dump(serialization) array = JSON.load(json) described_class.deserialize(*array) end describe '.serialize' do it 'returns an array with the serialized arguments' do serialization = described_class.serialize(TestMailer, :foo, 'arg') expect(serialization).to eq(['TestMailer', 'foo', 'arg']) end end describe '.deserialize' do it 'returns an array with the deserialized arguments' do deserialization = described_class.deserialize('TestMailer', 'foo', 'arg') expect(deserialization).to eq([TestMailer, :foo, 'arg']) end end it 'serializes and deserializes basic objects and queryable models' do args = [ TestUser.instance, 123, 'a string', %q[ an array ], { 'a' => 'hash' }, TestResource.instance ] deserialization = serialize_and_deserialize(TestMailer, :foo, *args) expect(deserialization.shift).to be(TestMailer) expect(deserialization.shift).to be(:foo) expect(deserialization).to eq(args) end it 'serializes and deserializes queryable models inside arrays' do array = [TestUser.instance] deserialization = serialize_and_deserialize(TestMailer, :foo, array) expect(deserialization).to eq([TestMailer, :foo, array]) end it 'serializes and deserializes queryable models inside hashes' do hash = { 'user' => TestUser.instance } deserialization = serialize_and_deserialize(TestMailer, :foo, hash) expect(deserialization).to eq([TestMailer, :foo, hash]) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
resque-async_deliver-1.3.1 | spec/unit/serializer_spec.rb |
resque-async_deliver-1.3.0 | spec/unit/serializer_spec.rb |