diff --git a/src/main/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaring.java b/src/main/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaring.java index fceb0d7..1581bee 100644 --- a/src/main/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaring.java +++ b/src/main/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaring.java @@ -30,7 +30,8 @@ public void tareAllBoxes() { private void tareIfNeeded(String id) { Box box = boxService.getBox(id); - if (box.getWeight() < 50) { + if (box.getWeight() <= -5 // + || (Math.abs(box.getWeight()) >= 5 && Math.abs(box.getWeight()) < 50)) { scaleService.tare(id); } else { log.info("No need to tare Scale {}, weight was {}.", id, box.getWeight()); diff --git a/src/test/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaringTest.java b/src/test/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaringTest.java index e24754a..fa6ff4c 100644 --- a/src/test/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaringTest.java +++ b/src/test/java/ch/stephan/chickenfarm/timer/ContinuousScaleTaringTest.java @@ -34,12 +34,18 @@ void setUp() throws Exception { @Test void test_WhenWeight0_tareIsCalled() { setAllWeightsTo(0); - callAndCheckTimesCalled(2); + callAndCheckTimesCalled(0); } @Test - void test_WhenWeightMinus165_tareIsCalled() { - setAllWeightsTo(-165); + void test_WhenWeight4_tareIsCalled() { + setAllWeightsTo(4); + callAndCheckTimesCalled(0); + } + + @Test + void test_WhenWeight5_tareIsCalled() { + setAllWeightsTo(5); callAndCheckTimesCalled(2); } @@ -55,6 +61,24 @@ void test_WhenWeight65_tareIsCalled() { callAndCheckTimesCalled(0); } + @Test + void test_WhenWeightMinus4_tareIsCalled() { + setAllWeightsTo(-4); + callAndCheckTimesCalled(0); + } + + @Test + void test_WhenWeightMinus5_tareIsCalled() { + setAllWeightsTo(-5); + callAndCheckTimesCalled(2); + } + + @Test + void test_WhenWeightMinus165_tareIsCalled() { + setAllWeightsTo(-165); + callAndCheckTimesCalled(2); + } + private void setAllWeightsTo(int weight) { boxService.getBoxes().stream()// .forEach(b -> b.setWeight(weight));