Skip to content

Commit

Permalink
UPDATE: implementation for invalid result units and default behaviour
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcel committed Dec 18, 2019
1 parent 853ecb6 commit 7e265ff
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/main/java/segelzwerg/sporttooolbox/web/pace/PaceService.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,19 @@
import segelzwerg.sporttooolbox.SpeedCalculator;
import segelzwerg.sporttooolbox.web.speed.SpeedForm;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


/**
* Pace calculating service
*/
@Component
public class PaceService {

List<String> validPaceUnits = new ArrayList<>(Arrays.asList("minutesPerKilometer", "minutesPerHundredMeters"));

/**
* calulates pace
*
Expand All @@ -23,6 +29,9 @@ public class PaceService {
public Pace calculatePace(SpeedForm form) {
String majorUnit = ((majorUnit = form.getDistanceMajorUnit()) != null) ? majorUnit : "kilometer";
String minorUnit = ((minorUnit = form.getDistanceMinorUnit()) != null) ? minorUnit : "meter";
String resultUnit = ((resultUnit = form.getResultUnit()) != null) ? resultUnit : "minutesPerKilometer";

checkValidUnit(validPaceUnits, resultUnit);
int major = form.getMajor();
int minor = form.getMinor();
Distance distance = Distance.createWithOtherThanSIUnits(major, minor, majorUnit, minorUnit);
Expand All @@ -36,4 +45,10 @@ public Pace calculatePace(SpeedForm form) {

return speedCalculator.computePace();
}

private void checkValidUnit(List<String> validUnits, String unit) {
if (!validUnits.contains(unit)) {
throw new IllegalArgumentException("This is not a valid unit: " + unit);
}
}
}

0 comments on commit 7e265ff

Please sign in to comment.