import org.fizzbuzz.FizzBuzz import org.junit.Before import org.junit.Test class FizzBuzzTest { FizzBuzz fb @Before void setUp() { fb = new FizzBuzz() } @Test void testGiven1Returns1AsString() { assert '1' == fb.toString(1) } @Test void testGiven2Returns2AsString() { assert '2' == fb.toString(2) } @Test void testGiven3ReturnsFizz() { assert 'Fizz' == fb.toString(3) } @Test void testGiven5ReturnsBuzz() { assert 'Buzz' == fb.toString(5) } @Test void testGiven15ReturnsFizzBuzz() { assert 'FizzBuzz' == fb.toString(15) } }
package org.fizzbuzz class FizzBuzz { String toString(number) { if (isMultipleOf3(number) &&&& isMultipleOf5(number)) return 'FizzBuzz' if (isMultipleOf3(number)) return 'Fizz' if (isMultipleOf5(number)) return 'Buzz' number.toString() } private boolean isMultipleOf5(number) { isMultipleOf.curry(5)(number) } private boolean isMultipleOf3(number) { isMultipleOf.curry(3)(number) } private def isMultipleOf = { int multipleOf, number ->> number % multipleOf == 0 } static void main(String... args) { def fb = new FizzBuzz() for (num in 1..100) { println fb.toString(num) } } }