From 694ea43e2befe9c7ebc44ffec376dc70dba1f409 Mon Sep 17 00:00:00 2001 From: Ricky Date: Fri, 21 Apr 2017 13:36:05 +1000 Subject: [PATCH] closes #214 around boundary conditions of numberBetween --- src/main/java/com/github/javafaker/Number.java | 2 +- .../java/com/github/javafaker/NumberTest.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/javafaker/Number.java b/src/main/java/com/github/javafaker/Number.java index 4ebf761a..e197ba31 100644 --- a/src/main/java/com/github/javafaker/Number.java +++ b/src/main/java/com/github/javafaker/Number.java @@ -27,7 +27,7 @@ public class Number { * @see Number#numberBetween(long, long) */ public int numberBetween(int min, int max) { - return decimalBetween(min,max).intValue(); + return decimalBetween(min,max).setScale(0, BigDecimal.ROUND_HALF_DOWN).intValue(); } /** diff --git a/src/test/java/com/github/javafaker/NumberTest.java b/src/test/java/com/github/javafaker/NumberTest.java index e1a3d1ff..07e1a08b 100644 --- a/src/test/java/com/github/javafaker/NumberTest.java +++ b/src/test/java/com/github/javafaker/NumberTest.java @@ -9,6 +9,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.Callable; @@ -120,6 +123,21 @@ public class NumberTest extends AbstractFakerTest { assertThat(v1, is(lessThan(980000000L))); } + @Test + public void testNumberBetweenOneAndThree() { + Set nums = Sets.newHashSet(); + final int lowerLimit = 0; + final int upperLimit = 3; + for (int i = 0; i < 1000; ++i) { + int value = faker.number().numberBetween(lowerLimit, upperLimit); + assertThat(value, is(lessThan(upperLimit))); + assertThat(value, is(greaterThanOrEqualTo(lowerLimit))); + nums.add(value); + } + assertThat("Verify all numbers 0-3 were represented", nums,hasSize(3)); + } + + /** * @see Number#numberBetween(int, int) */