package modele.course;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import modele.voiture.Voiture;
import common.Assert;
/**
* class TourneeTest
* v�rifie la recette de la tourn�e entr�e avec la recette th�orique
* @author Kasandra
*/
public class TourneeTest extends TestCase {
private Voiture uneVoiture = creeVoiture();
/**
* teste la recette journali�re
* @throws Exception
*/
public void testCalculRecetteJournaliere() throws Exception {
Tournee tournee = creeTournee(
chuteDebut(new BigDecimal("4.5")),
chuteFin(new BigDecimal("8.6")),
nombreDeTrajets(2));
BigDecimal valeurAttendue = new BigDecimal("5.21");
verifieRecetteJournali�reTh�orique(valeurAttendue, tournee.getRecetteJournali�reTh�orique());
}
private BigDecimal chuteDebut(BigDecimal chuteDebut) {
return chuteDebut;
}
private BigDecimal chuteFin(BigDecimal chuteFin) {
return chuteFin;
}
/**
* verifie Recette Journali�re Th�orique
* @param valeurAttendue
* @param valeurCalcul�e
*/
private void verifieRecetteJournali�reTh�orique(BigDecimal valeurAttendue,
BigDecimal valeurCalcul�e) {
Assert.verify(chuteDebut(valeurAttendue).equals(chuteDebut(valeurCalcul�e)), "ERREUR : la recette journali�re est '" + chuteDebut(valeurCalcul�e) + "' alors que l'on attendait '" + chuteDebut(valeurAttendue) + "'");
}
/**
* Cr�e tourn�e
*
* @param chuteDebut
* @param chuteFin
* @param trajets
* @return
*/
private Tournee creeTournee(BigDecimal chuteDebut, BigDecimal chuteFin, List<Trajet> trajets) {
Tournee tournee = new Tournee();
tournee.setVoiture(uneVoiture);
tournee.setChuteDebut(chuteDebut);
tournee.setChuteFin(chuteFin);
for (Trajet trajet : trajets) {
tournee.addTrajet(trajet);
}
return tournee;
}
/**
* cr�e voiture
* @return voiture
*/
private Voiture creeVoiture() {
Voiture voiture = new Voiture();
voiture.setKilometrageFinCirculation(Long.MAX_VALUE);
return voiture;
}
/**
*
*
* @param nombreDeTrajets
* @return nombre trajet
*/
private List<Trajet> nombreDeTrajets(int nombreDeTrajets) {
if (nombreDeTrajets < 0) throw new IllegalArgumentException("Le nombre de trajet doit �tre un nombre entier positif ou 0");
List<Trajet> trajets = new ArrayList<Trajet>();
for (int i = 0; i < nombreDeTrajets; i++ ) {
trajets.add(new Trajet());
}
return trajets;
}
}