summaryrefslogtreecommitdiff
path: root/test/lib/dice_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/dice_test.rb')
-rw-r--r--test/lib/dice_test.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/lib/dice_test.rb b/test/lib/dice_test.rb
new file mode 100644
index 0000000..1f36f30
--- /dev/null
+++ b/test/lib/dice_test.rb
@@ -0,0 +1,34 @@
+require "test_helper"
+
+class DiceTest < ActiveSupport::TestCase
+ test "rolls fomula" do
+ result = Dice.roll_formula("4d6+2")
+
+ assert_equal 4, result.rolls.count
+ assert_equal 6, result.rolls.first&.sides
+ end
+
+ test "rolls single die" do
+ result = Dice.roll(10)
+
+ assert_equal 1, result.rolls.count
+ assert_equal 10, result.rolls.first&.sides
+ end
+
+ test "increases sides below max" do
+ original_result = Dice::Result.new
+ original_result.add_roll Dice::Roll.new(6, 5)
+ original_result.add_roll Dice::Roll.new(6, 6)
+ original_result.add_roll Dice::Roll.new(6, 2)
+
+ new_result = original_result.dup
+
+ assert_equal 13, new_result.total
+ new_result.increase_sides_below_max(6, 1)
+ assert_equal 15, new_result.total
+
+ new_result.rolls.each_with_index do |roll, index|
+ assert_equal roll, original_result.rolls[index]
+ end
+ end
+end