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