Created
April 18, 2012 03:14
-
-
Save btaitelb/2410847 to your computer and use it in GitHub Desktop.
tests for https://gist.github.com/2410826
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# strategy_test.rb | |
# reframeit-testing | |
# | |
# Created by Ben Taitelbaum on 2/25/08. | |
# Copyright (c) 2008 __MyCompanyName__. All rights reserved. | |
# | |
require 'rubygems' | |
require 'test/unit' | |
require 'activethrift/strategies' | |
include ActiveThrift | |
class StrategyTest < Test::Unit::TestCase | |
def setup | |
# Write setup code here. | |
end | |
def teardown | |
# Write teardown code here. | |
end | |
def test_compound_strategy_trivial | |
cs = CompoundStrategy.new | |
assert !cs.execute | |
end | |
def test_compound_strategy_true | |
cs = CompoundStrategy.new {true} | |
assert cs.execute | |
end | |
def test_compound_strategy_chained | |
a = 1 | |
s1 = CompoundStrategy.new{a = 3} | |
s2 = CompoundStrategy.new{a = a + 2} | |
s3 = s1+s2 | |
assert_equal 5, s3.execute | |
assert_equal 5, a | |
end | |
def test_compound_strategy_anded_true | |
a = 1 | |
s1 = CompoundStrategy.new{a += 2; true} | |
s2 = CompoundStrategy.new{a += 3; true} | |
s3 = s1 & s2 | |
assert s3.execute | |
assert_equal 6, a | |
end | |
def test_compound_strategy_anded_false | |
a = 1 | |
s1 = CompoundStrategy.new{a += 2; false} | |
s2 = CompoundStrategy.new{a += 3; true} | |
s3 = s1 & s2 | |
assert !s3.execute | |
assert_equal 3, a | |
end | |
def test_compound_strategy_piped | |
s1 = CompoundStrategy.new{|a| a += 1 } | |
s2 = CompoundStrategy.new{|a| a += 2 } | |
s3 = s1 | s2 | |
assert_equal 3, s3.execute(0) | |
assert_equal 7, s3.execute(4) | |
end | |
def test_true_strategy | |
ts = TrueStrategy.instance | |
ts2 = TrueStrategy.instance | |
assert_equal ts, ts2 | |
assert ts.execute | |
s3 = ts & ts2 | |
assert s3.execute | |
end | |
def test_false_strategy | |
fs = FalseStrategy.instance | |
fs2 = FalseStrategy.instance | |
assert_equal fs, fs2 | |
assert !fs.execute | |
s3 = fs & fs2 | |
assert !s3.execute | |
end | |
def test_identity_strategy | |
s1 = IdentityStrategy.instance | |
s2 = IdentityStrategy.instance | |
assert_equal s1, s2 | |
assert s1.execute(true) | |
assert !s1.execute(false) | |
assert_equal 4, s1.execute(4) | |
end | |
def test_combine_void_strategy | |
a = 0 | |
s1 = VoidStrategy.instance | |
s2 = CompoundStrategy.new{a = 4} | |
s3 = s1 + s2 | |
assert_equal 4, s3.execute | |
assert_equal 4, a | |
end | |
def test_combine_void_with_param | |
s1 = VoidStrategy.instance | |
s2 = CompoundStrategy.new{|a| a + 3} | |
s3 = s1 + s2 | |
assert_equal 7, s3.execute(4) | |
end | |
def test_pipe_multiple_params | |
s1 = IdentityStrategy.instance | |
s2 = CompoundStrategy.new{|a, b, c| b - c} | |
s12 = s1|s2 | |
assert_equal 3, s12.execute(0,7,4) | |
s3 = CompoundStrategy.new{|a, b, c| a+b+c} | |
s4 = s1|s2|s3 | |
assert_equal 14, s4.execute(0, 7, 4) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment