class Mosquito::TestBackend
- Mosquito::TestBackend
- Mosquito::Backend
- Reference
- Object
Overview
An in-memory noop backend desigend to be used in application testing.
The test mode backend simply makes a copy of job_runs at enqueue time and holds them in a class getter array.
Job run id, config (aka parameters), and runtime class are kept in memory, and a truncate utility function is provided.
Activate test mode configure the test backend like this:
Mosquito.configure do |settings|
settings.backend = Mosquito::TestBackend
end
Then in your tests:
describe "testing" do
it "enqueues the job" do
# build and enqueue a job
job_run = EchoJob.new(text: "hello world").enqueue
# assert that the job was enqueued
lastest_enqueued_job = Mosquito::TestBackend.enqueued_jobs.last
# check the job config
assert_equal "hello world", latest_enqueued_job.config["text"]
# check the job_id matches
assert_equal job_run.id, latest_enqueued_job.id
# optionally, truncate the history
Mosquito::TestBackend.flush_enqueued_jobs!
end
end
Extended Modules
Defined in:
mosquito/test_backend.crClass Method Summary
- .delete(key : String, in ttl : Int64 = 0) : Nil
- .delete(key : String, in ttl : Time::Span) : Nil
- .delete_field(key : String, field : String) : Nil
- .enqueued_jobs
- .enqueued_jobs=(enqueued_jobs : Array(Mosquito::TestBackend::EnqueuedJob))
- .expires_in(key : String) : Int64
- .expiring_list_fetch(key : String, expire_items_older_than : Time) : Array(String)
- .expiring_list_push(key : String, value : String) : Nil
- .flush : Nil
- .flush_enqueued_jobs!
- .get(key : String, field : String) : String | Nil
- .increment(key : String, field : String, by value : Int32) : Int64
- .increment(key : String, field : String) : Int64
- .list_overseers : Array(String)
- .list_queues : Array(String)
- .lock?(key : String, value : String, ttl : Time::Span) : Bool
- .publish(key : String, value : String) : Nil
- .register_overseer(id : String) : Nil
- .retrieve(key : String) : Hash(String, String)
- .set(key : String, field : String, value : String) : String
- .store(key : String, value : Hash(String, String)) : Nil
- .subscribe(key : String) : Channel(BroadcastMessage)
- .unlock(key : String, value : String) : Nil
Instance Method Summary
- #dead_size : Int64
- #dequeue : JobRun | Nil
- #deschedule : Array(JobRun)
- #dump_dead_q : Array(String)
- #dump_pending_q : Array(String)
- #dump_scheduled_q : Array(String)
- #dump_waiting_q : Array(String)
-
#enqueue(job_run : JobRun) : JobRun
from queue.cr
- #finish(job_run : JobRun)
- #flush : Nil
- #pending_size : Int64
- #schedule(job_run : JobRun, at scheduled_time : Time) : JobRun
- #scheduled_job_run_time(job_run : JobRun) : String | Nil
- #scheduled_size : Int64
- #size(include_dead : Bool = true) : Int64
- #terminate(job_run : JobRun)
- #waiting_size : Int64