Last active
August 29, 2015 14:16
-
-
Save jotak/0322332e338a759c56ef to your computer and use it in GitHub Desktop.
Voitures bleues & mocking db
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Persister { | |
public Collection<Voiture> query(String q) { | |
// get from DB | |
} | |
} | |
public class Voiture { | |
private final int couleur; | |
public Voiture(int couleur) { | |
this.couleur = couleur; | |
} | |
// equals/hashcode.. | |
} | |
public class Voitures { | |
public final static int ROUGE = 0; | |
public final static int BLEU = 1; | |
private Persister persister = new Persister(); | |
public Collection<Voiture> getVoituresBleues() { | |
return persister.query("voiture.is(BLEU)"); | |
} | |
} | |
public class VoituresTest { | |
@Mock | |
final Persister persister; | |
@InjectMocks | |
final Voitures voitures; | |
@Test | |
public void shouldGetVoituresBleues1() { | |
when(persister.query(anyString())).thenReturn(Lists.newArrayList( | |
new Voiture(Voitures.BLEU), | |
new Voiture(Voitures.BLEU) | |
)); | |
final Collection<Voiture> result = voitures.getVoituresBleues(); | |
assertThat(result).containsExactly(new Voiture(Voitures.BLEU), new Voiture(Voitures.BLEU)); | |
verify(persister).query("voiture.is(BLEU)"); | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Persister { | |
public Collection<Vehicule> query(String q) { | |
// get from DB | |
} | |
} | |
public class Vehicule { | |
private final int couleur; | |
// AJOUT DU TYPE! | |
private final int type; | |
public Vehicule(int type, int couleur) { | |
this.type = type; | |
this.couleur = couleur; | |
} | |
// equals/hashcode.. | |
} | |
public class Vehicules { | |
public final static int ROUGE = 0; | |
public final static int BLEU = 1; | |
public final static int VOITURE = 0; | |
public final static int CAMION = 1; | |
private Persister persister = new Persister(); | |
public Collection<Vehicule> getVoituresBleues() { | |
// Oubli de checker le type ici | |
return persister.query("vehicule.is(BLEU)"); | |
} | |
} | |
public class VehiculesTest1 { | |
@Mock | |
final Persister persister; | |
@InjectMocks | |
final Vehicules vehicules; | |
@Test | |
// CE TEST ECHOUE A REPERER L'ERREUR | |
public void shouldGetVoituresBleues1() { | |
when(persister.query(anyString())).thenReturn(Lists.newArrayList( | |
new Vehicule(Vehicules.VOITURE, Vehicules.BLEU), | |
new Vehicule(Vehicules.VOITURE, Vehicules.BLEU) | |
)); | |
final Collection<Vehicule> result = vehicules.getVoituresBleues(); | |
assertThat(result).containsExactly(new Vehicule(Vehicules.VOITURE, Vehicules.BLEU), new Vehicule(Vehicules.VOITURE, Vehicules.BLEU)); | |
verify(persister).query("vehicule.is(BLEU)"); | |
} | |
} | |
public class VehiculesTest2 { | |
final Vehicules vehicules = new Vehicules(); | |
@Test | |
// CE TEST L'AURAIT REPEREE | |
public void shouldGetVoituresBleues2() { | |
initDb("vehicule", | |
new Vehicule(Vehicules.VOITURE, Vehicules.BLEU), | |
new Vehicule(Vehicules.VOITURE, Vehicules.BLEU), | |
new Vehicule(Vehicules.VOITURE, Vehicules.ROUGE), | |
new Vehicule(Vehicules.CAMION, Vehicules.BLEU)); | |
final Collection<Vehicule> result = vehicules.getVoituresBleues(); | |
assertThat(result).containsExactly(new Vehicule(Vehicules.VOITURE, Vehicules.BLEU), new Vehicule(Vehicules.VOITURE, Vehicules.BLEU)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment