public async Task GetPlayerProgress_WithExistingPlayerProgress_GetCorrectOne()
        {
            var repository     = new PlayerProgressRepository(_context);
            var playerProgress = await repository.GetPlayerProgress("player1", 1);

            playerProgress.Should().NotBeNull();
            playerProgress.PlayerId.Should().Be("player1");
            playerProgress.QuestId.Should().Be(1);
            playerProgress.QuestPointsEarned.Should().Be(1);
        }
        public async Task GetPlayerProgress_WithNoExistingPlayerProgress_GetEmptyNewOne()
        {
            var repository     = new PlayerProgressRepository(_context);
            var playerProgress = await repository.GetPlayerProgress("player2", 2);

            playerProgress.Should().NotBeNull();
            playerProgress.PlayerId.Should().Be("player2");
            playerProgress.QuestId.Should().Be(2);
            playerProgress.QuestPointsEarned.Should().Be(0);
        }
        public async Task GetPlayerProgress_WithEmptyContext_GetEmptyNewOne()
        {
            _context.PlayerProgresses.RemoveRange(_context.PlayerProgresses);
            _context.SaveChanges();

            var repository     = new PlayerProgressRepository(_context);
            var playerProgress = await repository.GetPlayerProgress("player1", 1);

            playerProgress.Should().NotBeNull();
            playerProgress.PlayerId.Should().Be("player1");
            playerProgress.QuestId.Should().Be(1);
            playerProgress.QuestPointsEarned.Should().Be(0);
        }
        public async Task SavePlayerProgress_CreatingNewPlayerProgress()
        {
            var playerProgress = _context.PlayerProgresses.Find("player2", 2);

            playerProgress.Should().BeNull();


            var repository = new PlayerProgressRepository(_context);

            await repository.SavePlayerProgress("player2", 2, 10, 1);

            playerProgress = _context.PlayerProgresses.Find("player2", 2);

            playerProgress.Should().NotBeNull();
            playerProgress.PlayerId.Should().Be("player2");
            playerProgress.QuestId.Should().Be(2);
            playerProgress.QuestPointsEarned.Should().Be(10);
            playerProgress.LastMilestoneCompletedId.Should().Be(1);
        }