backstage rules

This commit is contained in:
Konstantin Pavlov 2019-06-30 06:52:43 +02:00
parent 9da12c4753
commit 6b5deb7880
2 changed files with 10 additions and 2 deletions

View File

@ -35,7 +35,7 @@ class GildedRose {
val newSellIn = calculateSellIn(item.name, item.sellIn);
var newQuality = rules.stream()
val newQuality = rules.stream()
.reduce(new Result(item.quality, false),
(q, rule) -> {
if (q.isFinalValue() || !rule.shouldApply(item.name)) {

View File

@ -11,7 +11,15 @@ public class BackstagePassQualityRule implements QualityRule {
@Override
public Result calculateQuality(int oldQuality, int sellIn) {
final int newQuality = oldQuality + 2;
final int newQuality;
if (sellIn < 0) {
newQuality = 0;
} else if (sellIn < 5) {
newQuality = oldQuality + 3;
} else {
newQuality = oldQuality + 2;
}
return new Result(min(newQuality, 50), true);
}
}