@Test public void shouldNotBeConsideredIfNotBetterThanPreviousForSameDate() { Score[] scores = new Score[] {score(1, 1, 1, 1, 1, 500)}; Score score = score(1, 1, 1, 1, 1, 250); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.replacedScores, equalTo(-1)); }
@Test public void shouldBeBestIfBetterThanPreviousBest() { Score[] scores = new Score[] {score(1, 1, 1, 1, 1, 250)}; Score score = score(1, 1, 1, 1, 1, 500); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(score.scope, equalTo(1)); assertThat(result.replacedScores, equalTo(0)); }
@Test public void shouldBeBestScoreIfNoOtherScore() { Score[] scores = new Score[] {}; Score score = score(1, 1, 1, 1, 1, 500); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(false)); assertThat(score.scope, equalTo(1)); assertThat(result.replacedScores, equalTo(-1)); }
@Test public void testBestScoreFromAnotherYear() { Score[] scores = new Score[] {score(1, 1, 1, 1, 1, 250)}; Score score = score(2, 1, 1, 1, 1, 500); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(false)); assertThat(score.scope, equalTo(1)); assertThat(result.replacedScores, equalTo(0)); }
@Test public void shouldNotBeConsideredAsBestOfMonth() { Score[] scores = new Score[] { // score(1, 1, 1, 1, 1, 500), // score(1, 2, 5, 80, 2, 450), // }; Score score = score(1, 2, 5, 80, 1, 350); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(true)); assertThat(result.replacedScores, equalTo(-1)); }
@Test public void shouldBeConsideredForBestOfMonth() { Score[] scores = new Score[] { // score(1, 1, 1, 1, 1, 500), // score(1, 2, 5, 80, 2, 250), // }; Score score = score(1, 2, 6, 81, 1, 350); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(score.scope, equalTo(2)); assertThat(result.replacedScores, equalTo(1)); }
@Test public void testCaseSameWeekSameDayLessScore() { Score[] scores = new Score[] { // score(1, 1, 1, 1, 1, 500), // score(1, 1, 2, 8, 3, 400), // }; Score score = score(1, 1, 2, 8, 1, 350); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(true)); assertThat(result.replacedScores, equalTo(-1)); }
@Test public void shouldBeBestOfMonthWhenSameDateThanAll() { Score[] scores = new Score[] { // score(1, 1, 1, 1, 1, 500), // }; Score score = score(1, 2, 5, 50, 1, 400); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(false)); assertThat(score.scope, equalTo(Range.Month.scope)); assertThat(result.replacedScores, equalTo(-1)); }
@Test public void shouldReplaceBestOfSecondWeek() { Score[] scores = new Score[] { // score(1, 1, 1, 1, 1, 500), // score(1, 1, 2, 8, 3, 400), // }; Score score = score(1, 1, 2, 8, 1, 450); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(true)); assertThat(score.scope, equalTo(3)); assertThat(result.replacedScores, equalTo(1)); }
@Test public void shouldBeBestOfTodayButNotYesterday() { Score[] scores = new Score[] { score(1, 1, 1, 1, 1, 500), // score(1, 1, 1, 2, 4, 450), // score(1, 1, 1, 3, 4, 350), // score(1, 1, 1, 4, 4, 250), // }; Score score = score(1, 1, 1, 5, 1, 150); Result result = LeaderboardService.calculateScoreScopeAndStuff(score, scores); assertThat(result.todayScoreExists, equalTo(false)); assertThat(score.scope, equalTo(4)); assertThat(result.replacedScores, equalTo(-1)); }