Skip to content

Instantly share code, notes, and snippets.

@mgryszko
Last active February 12, 2022 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mgryszko/8ef3636244e64ea455d98cf51e613e60 to your computer and use it in GitHub Desktop.
Save mgryszko/8ef3636244e64ea455d98cf51e613e60 to your computer and use it in GitHub Desktop.
class CalculateScoresServiceTest {
ScorePersisterSupplier persisterSupplier = mock(ScorePersisterSupplier.class);
ScoreVersioner versioner = mock(ScoreVersioner.class);
ScoreCalculator calculator = mock(ScoreCalculator.class);
int inactiveScoresToKeep = 2;
ScorePersister persister = mock(ScorePersister.class);
String profileId = "::profileId::";
int version = 1;
CalculateScoresService recalculateService = new CalculateScoresService(
persisterSupplier,
versioner,
calculator,
inactiveScoresToKeep
);
@Test
void deleteDefault() {
var profile = ScoringProfile.builder().id(profileId).defaultProfile(true).build();
when(versioner.nextVersion(profile)).thenReturn(version);
when(persisterSupplier.getPersister(profileId, version)).thenReturn(persister);
recalculateService.calculateAndPersist(profile);
var inOrder = inOrder(persister, calculator, versioner);
inOrder.verify(persister).deleteInactive(profileId, inactiveScoresToKeep);
inOrder.verify(versioner).deleteInactive(profileId, inactiveScoresToKeep);
inOrder.verify(calculator).calculateScores(profile, persister);
inOrder.verify(versioner).calculationFinished(version);
inOrder.verify(versioner).activateVersion(profile, version);
inOrder.verify(persister).deleteInactive(profileId, inactiveScoresToKeep);
inOrder.verify(versioner).deleteInactive(profileId, inactiveScoresToKeep);
}
@Test
void deleteCustom() {
var profile = ScoringProfile.builder().id(profileId).defaultProfile(false).build();
when(versioner.nextVersion(profile)).thenReturn(version);
when(scoresStorer.getPersister(profileId, version)).thenReturn(persister);
recalculateService.calculateAndPersist(profile);
var inOrder = inOrder(persister, calculator, versioner);
inOrder.verify(persister).deleteInactive(profileId, 0);
inOrder.verify(versioner).deleteInactive(profileId, 0);
inOrder.verify(calculator).calculateScores(profile, persister);
inOrder.verify(versioner).calculationFinished(version);
inOrder.verify(versioner).activateVersion(profile, version);
inOrder.verify(persister).deleteInactive(profileId, 0);
inOrder.verify(versioner).deleteInactive(profileId, 0);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment