package com.fernandocejas.testing.sample.junit.model; /** * @author: Fernando Cejas <fcejas@gmail.com> * android10.org */ public class Car { private final Engine engine; private int kilometers = 0; private int fuel; public Car(Engine engine) { this(engine, 0); } public Car(Engine engine, int fuel) { this.engine = engine; this.fuel = fuel; } public Engine getEngine() { return engine; } public int getKilometers() { return kilometers; } public int getFuel() { return fuel; } public void setFuel(int fuel) { this.fuel = fuel; } public void moveForward(int kilometers) { if (fuel > 0) { final int fuelConsumption = engine.getFuelConsumptionPerKm(); if (isFuelEnough(kilometers, fuelConsumption)) { this.kilometers += kilometers; this.fuel -= fuelConsumption * kilometers; } } else { throw new UnsupportedOperationException("There is not enough fuel..."); } } private boolean isFuelEnough(int kilometers, int fuelConsumptionPerKm) { int totalFuelConsumed = fuelConsumptionPerKm * kilometers; return (totalFuelConsumed < fuel); } }