test/unit/daemon_data_tests.rb in qs-0.6.1 vs test/unit/daemon_data_tests.rb in qs-0.7.0
- old
+ new
@@ -11,117 +11,122 @@
setup do
@current_env_process_label = ENV['QS_PROCESS_LABEL']
ENV['QS_PROCESS_LABEL'] = Factory.string
@current_env_debug = ENV['QS_DEBUG']
- ENV['QS_DEBUG'] = Factory.string
+ ENV.delete('QS_DEBUG')
- @routes = (0..Factory.integer(3)).map do
+ @queues = Factory.integer(3).times.map do
+ Qs::Queue.new{ name Factory.string }
+ end
+
+ @routes = Factory.integer(3).times.map do
Qs::Route.new(Factory.string, TestHandler.to_s).tap(&:validate!)
end
@config_hash = {
:name => Factory.string,
:pid_file => Factory.file_path,
+ :shutdown_timeout => Factory.integer,
:worker_class => Class.new,
:worker_params => { Factory.string => Factory.string },
:num_workers => Factory.integer,
+ :error_procs => Factory.integer(3).times.map{ proc{} },
:logger => Factory.string,
+ :queues => @queues,
:verbose_logging => Factory.boolean,
- :shutdown_timeout => Factory.integer,
- :error_procs => [ proc{ Factory.string } ],
- :queue_redis_keys => Factory.integer(3).times.map{ Factory.string },
:routes => @routes
}
@daemon_data = Qs::DaemonData.new(@config_hash)
end
teardown do
ENV['QS_DEBUG'] = @current_env_debug
ENV['QS_PROCESS_LABEL'] = @current_env_process_label
end
subject{ @daemon_data }
- should have_readers :name, :process_label, :pid_file
+ should have_readers :name, :pid_file, :shutdown_timeout
should have_readers :worker_class, :worker_params, :num_workers
- should have_readers :debug, :logger, :dwp_logger, :verbose_logging
- should have_readers :shutdown_timeout
- should have_readers :error_procs, :queue_redis_keys, :routes
+ should have_readers :error_procs, :logger, :queue_redis_keys
+ should have_readers :verbose_logging
+ should have_readers :debug, :dwp_logger, :routes, :process_label
should have_imeths :route_for
- should "know its attributes" do
+ should "know its attrs" do
h = @config_hash
- assert_equal h[:name], subject.name
- assert_equal h[:pid_file], subject.pid_file
- assert_equal h[:worker_class], subject.worker_class
- assert_equal h[:worker_params], subject.worker_params
- assert_equal h[:num_workers], subject.num_workers
- assert_equal h[:logger], subject.logger
- assert_equal h[:verbose_logging], subject.verbose_logging
+ assert_equal h[:name], subject.name
+ assert_equal h[:pid_file], subject.pid_file
+
assert_equal h[:shutdown_timeout], subject.shutdown_timeout
- assert_equal h[:error_procs], subject.error_procs
- assert_equal h[:queue_redis_keys], subject.queue_redis_keys
+
+ assert_equal h[:worker_class], subject.worker_class
+ assert_equal h[:worker_params], subject.worker_params
+ assert_equal h[:num_workers], subject.num_workers
+ assert_equal h[:error_procs], subject.error_procs
+ assert_equal h[:logger], subject.logger
+
+ exp = @queues.map(&:redis_key)
+ assert_equal exp, subject.queue_redis_keys
+
+ assert_equal h[:verbose_logging], subject.verbose_logging
+
+ assert_false subject.debug
+ assert_nil subject.dwp_logger
+
+ exp = @routes.inject({}){ |h, r| h.merge(r.id => r) }
+ assert_equal exp, subject.routes
end
- should "use process label env var if set" do
- ENV['QS_PROCESS_LABEL'] = Factory.string
- daemon_data = Qs::DaemonData.new(@config_hash)
- assert_equal ENV['QS_PROCESS_LABEL'], daemon_data.process_label
+ should "know its process label" do
+ assert_equal ENV['QS_PROCESS_LABEL'], subject.process_label
ENV['QS_PROCESS_LABEL'] = ""
daemon_data = Qs::DaemonData.new(@config_hash)
assert_equal @config_hash[:name], daemon_data.process_label
ENV.delete('QS_PROCESS_LABEL')
daemon_data = Qs::DaemonData.new(@config_hash)
assert_equal @config_hash[:name], daemon_data.process_label
end
- should "use debug env var if set" do
+ should "use the debug env var if set" do
ENV['QS_DEBUG'] = Factory.string
daemon_data = Qs::DaemonData.new(@config_hash)
assert_true daemon_data.debug
- assert_equal @config_hash[:logger], daemon_data.dwp_logger
-
- ENV['QS_DEBUG'] = ""
- daemon_data = Qs::DaemonData.new(@config_hash)
- assert_false daemon_data.debug
- assert_nil daemon_data.dwp_logger
-
- ENV.delete('QS_DEBUG')
- daemon_data = Qs::DaemonData.new(@config_hash)
- assert_false daemon_data.debug
- assert_nil daemon_data.dwp_logger
+ assert_equal daemon_data.logger, daemon_data.dwp_logger
end
- should "build a routes lookup hash" do
- expected = @routes.inject({}){ |h, r| h.merge(r.id => r) }
- assert_equal expected, subject.routes
+ should "look up a route using `route_for`" do
+ exp_route = @routes.sample
+ assert_equal exp_route, subject.route_for(exp_route.id)
end
- should "allow looking up a route using `route_for`" do
- exp_route = @routes.choice
- route = subject.route_for(exp_route.id)
- assert_equal exp_route, route
- end
-
should "raise a not found error using `route_for` with an invalid name" do
assert_raises(Qs::NotFoundError) do
subject.route_for(Factory.string)
end
end
- should "default its attributes when they aren't provided" do
+ should "default its attrs when they aren't provided" do
daemon_data = Qs::DaemonData.new
assert_nil daemon_data.name
assert_nil daemon_data.pid_file
+ assert_nil daemon_data.shutdown_timeout
+
assert_nil daemon_data.worker_class
assert_equal({}, daemon_data.worker_params)
assert_nil daemon_data.num_workers
- assert_nil daemon_data.logger
- assert_false daemon_data.verbose_logging
- assert_nil daemon_data.shutdown_timeout
+
assert_equal [], daemon_data.error_procs
+
+ assert_nil daemon_data.logger
assert_equal [], daemon_data.queue_redis_keys
+
+ assert_false daemon_data.verbose_logging
+
+ assert_false daemon_data.debug
+ assert_nil daemon_data.dwp_logger
+
assert_equal({}, daemon_data.routes)
end
end