From be0d1e2ef0b0ac6db5b0391f03fdce3bf36ee14f Mon Sep 17 00:00:00 2001 From: Allison Ryan Date: Wed, 16 Mar 2022 13:31:06 -0500 Subject: [PATCH] refactor: move leaderboard ranking to models --- .../lib/src/leaderboard_repository.dart | 19 ------------------ .../lib/src/models/leaderboard_ranking.dart | 20 +++++++++++++++++++ .../lib/src/models/models.dart | 1 + .../src/models/leaderboard_ranking_test.dart | 19 ++++++++++++++++++ 4 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 packages/leaderboard_repository/lib/src/models/leaderboard_ranking.dart create mode 100644 packages/leaderboard_repository/test/src/models/leaderboard_ranking_test.dart diff --git a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart index 430a1483..524ae9a5 100644 --- a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart +++ b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart @@ -1,25 +1,6 @@ import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:equatable/equatable.dart'; import 'package:leaderboard_repository/leaderboard_repository.dart'; -/// {@template leaderboard_ranking} -/// Contains [ranking] for a single [LeaderboardEntry] and the number of players -/// the [ranking] is [outOf]. -/// {@endtemplate} -class LeaderboardRanking extends Equatable { - /// {@macro leaderboard_ranking} - const LeaderboardRanking({required this.ranking, required this.outOf}); - - /// Place ranking by score for a [LeaderboardEntry]. - final int ranking; - - /// Number of [LeaderboardEntry]s at the time of score entry. - final int outOf; - - @override - List get props => [ranking, outOf]; -} - /// {@template leaderboard_exception} /// Base exception for leaderboard repository failures. /// {@endtemplate} diff --git a/packages/leaderboard_repository/lib/src/models/leaderboard_ranking.dart b/packages/leaderboard_repository/lib/src/models/leaderboard_ranking.dart new file mode 100644 index 00000000..7ec90ef4 --- /dev/null +++ b/packages/leaderboard_repository/lib/src/models/leaderboard_ranking.dart @@ -0,0 +1,20 @@ +import 'package:equatable/equatable.dart'; +import 'package:leaderboard_repository/leaderboard_repository.dart'; + +/// {@template leaderboard_ranking} +/// Contains [ranking] for a single [LeaderboardEntry] and the number of players +/// the [ranking] is [outOf]. +/// {@endtemplate} +class LeaderboardRanking extends Equatable { + /// {@macro leaderboard_ranking} + const LeaderboardRanking({required this.ranking, required this.outOf}); + + /// Place ranking by score for a [LeaderboardEntry]. + final int ranking; + + /// Number of [LeaderboardEntry]s at the time of score entry. + final int outOf; + + @override + List get props => [ranking, outOf]; +} diff --git a/packages/leaderboard_repository/lib/src/models/models.dart b/packages/leaderboard_repository/lib/src/models/models.dart index ba9764d0..3dabe2bf 100644 --- a/packages/leaderboard_repository/lib/src/models/models.dart +++ b/packages/leaderboard_repository/lib/src/models/models.dart @@ -1 +1,2 @@ export 'leaderboard_entry.dart'; +export 'leaderboard_ranking.dart'; diff --git a/packages/leaderboard_repository/test/src/models/leaderboard_ranking_test.dart b/packages/leaderboard_repository/test/src/models/leaderboard_ranking_test.dart new file mode 100644 index 00000000..577251e4 --- /dev/null +++ b/packages/leaderboard_repository/test/src/models/leaderboard_ranking_test.dart @@ -0,0 +1,19 @@ +import 'package:leaderboard_repository/leaderboard_repository.dart'; +import 'package:test/test.dart'; + +void main() { + group('LeaderboardRanking', () { + test('can be instantiated', () { + const leaderboardRanking = LeaderboardRanking(ranking: 1, outOf: 1); + + expect(leaderboardRanking, isNotNull); + }); + + test('supports value equality.', () { + const leaderboardRanking = LeaderboardRanking(ranking: 1, outOf: 1); + const leaderboardRanking2 = LeaderboardRanking(ranking: 1, outOf: 1); + + expect(leaderboardRanking, equals(leaderboardRanking2)); + }); + }); +}