All pastes #56641 Raw Edit

tonyc

public text v1 · immutable
#56641 ·published 2006-05-17 18:41 UTC
rendered paste body
lib/colorizer.rb:
#!/usr/bin/env ruby

### Colorizer

class Colorizer
  def initialize(options = {})
    if options[:max].nil? or options[:min].nil?
      raise ArgumentError, "Need to pass in max and min options"
    end
  end
  
  def colorize(value)
    raise ArgumentError, "Kaboom"
  end
end



test/test_colorizer.rb:
#!/usr/bin/env ruby

require 'test/unit'
require 'colorizer'

### Colorizer test cases
class TestColorizer < Test::Unit::TestCase
  def setup
  end
  
  def teardown
  end
  
  def test_no_max_in_constructor
    assert_raise ArgumentError do 
      Colorizer.new :min => 0
    end
  end
  
  def test_no_min_in_constructor
    assert_raise ArgumentError do 
      Colorizer.new :max => 55
    end
  end
  
  def test_constructor_happy_path
    Colorizer.new :min => 0, :max => 55 
  end
  
  def test_colorize
    c = Colorizer.new :min => 0, :max => 55
    
    assert_raise ArgumentError do 
      c.colorize(5)
    end
  end
end


Output: 

$ autotest
# Testing updated files
+ /usr/bin/ruby -Ilib:test -e '["test/test_colorizer.rb", "test/test_colorizer.rb"].each { |f| load f }' | unit_diff -u
Loaded suite .
Started


Finished in 0.0 seconds.

0 tests, 0 assertions, 0 failures, 0 errors
# Passed
# All passed
# Waiting for changes