public async Task GetSackAsync_Sack_EqualSack()
        {
            //Arrange
            var webApiClient = new WebApiClient(new TestHttpClient(expectedSack));
            var service      = new ShardService(webApiClient);

            //Act
            var actualSack = await service.GetSackAsync();

            //Assert
            Assert.That(actualSack, Is.EqualTo(expectedSack), "Sacks are not equal.");
        }
        public async Task GetSackAsync_ApiUrl_ValidCode2()
        {
            //Arrange
            var service = new ShardService(new WebApiClient());

            //Act
            var sack = await service.GetSackAsync();

            var code = await service.GetCodeAsync(sack);

            var codeValidity = await service.VerifyCodeAsync(code);

            // Assert
            Assert.True(codeValidity.CodeIsValid, codeValidity.ValidationMessage);
        }
        public static void EnsureIntegrity()
        {
            var ctx = new GalaxyStormDbContext();
            var shardsRepo = new Repository<Shard>(ctx);
            var playersRepo = new Repository<PlayerObject>(ctx);
            var usersRepo = new Repository<ApplicationUser>(ctx);
            var planetsRepo = new Repository<Planet>(ctx);

            var shardService = new ShardService(playersRepo, shardsRepo);
            var playerService = new PlayerService(usersRepo,planetsRepo, shardsRepo, playersRepo, null);

            AllocatePlanets(shardService);

            AssignPlayerObjects(playerService);
        }
        public async Task GetCode_Sack_False()
        {
            var service = new ShardService(new WebApiClient());

            SetSack(expectedSack);

            // Act
            string code = await service.GetCodeAsync(expectedSack);

            code = string.Join(string.Empty, code.ToCharArray().OrderByDescending(x => x));
            var codeValidity = await service.VerifyCodeAsync(code);

            // Assert
            Assert.IsFalse(codeValidity.CodeIsValid, codeValidity.ValidationMessage);
        }
        public async Task GetCode_Sack_True()
        {
            var webApiClient = new WebApiClient(new TestHttpClient(expectedSack));
            var service      = new ShardService(webApiClient);

            SetSack(expectedSack);

            // Act
            string code = await service.GetCodeAsync(expectedSack);

            var codeValidity = await service.VerifyCodeAsync(code);

            // Assert
            Assert.True(codeValidity.CodeIsValid, codeValidity.ValidationMessage);
        }
        public async Task GetSackAsync_ApiUrl_ValidCode()
        {
            //Arrange
            var service = new ShardService(new WebApiClient());

            //Act
            var isValidCodeTask = await service.GetSackAsync()
                                  .ContinueWith(async(antecedent) =>
            {
                return(await service.GetCodeAsync(antecedent.Result));
            }, TaskContinuationOptions.OnlyOnRanToCompletion)
                                  .ContinueWith(async(antecedent) =>
            {
                return(await service.VerifyCodeAsync(antecedent.Result.Result));
            }, TaskContinuationOptions.OnlyOnRanToCompletion);

            var codeValidity = isValidCodeTask.Result;

            Assert.True(codeValidity.CodeIsValid, codeValidity.ValidationMessage);
        }