Exemplo n.º 1
0
        public async void UnlockingFinished()
        {
            var wardMetaId = "Test_UnlockingFinished";
            var unlockTime = TimeSpan.FromMilliseconds(500);
            var playerId   = "Test_UnlockingFinished";

            // Create test builidng meta if it doesn't exist.
            var wardMeta = await new WardMeta(wardMetaId).LoadAsync();

            if (wardMeta == null)
            {
                wardMeta              = new WardMeta(wardMetaId);
                wardMeta.UnlockTime   = unlockTime;
                wardMeta.UnlockReward = new Reward()
                {
                    Resources = new List <int> {
                        100
                    }, RandomCitizens = 1
                };
                await wardMeta.InsertAsync();
            }

            // Create test player and ward.
            var ward = new Ward(wardMetaId);

            ward.UnlockTask = new TimeTask(wardMeta.UnlockTime);
            var player = await Helpers.CreateTestPlayer(playerId, ward : ward);

            // Wait for ward to unlock.
            Thread.Sleep(unlockTime);

            // Auth player.
            var sessionToken = Helpers.GetSessionToken(playerId);

            // Mock data.
            var data = JToken.Parse($@"{{
                'PlayerId':'{playerId}',
                'SessionToken':'{sessionToken}',
                'WardId':'{ward.Id}'
            }}");

            // Execute controller.
            var controller    = new FinishWardUnlockingController();
            var responseToken = await controller.HandleHttpRequestAsync(data);

            // Assert controller response status is OK.
            Assert.Equal(responseToken["Status"], JStatus.Ok.JToken["Status"]);

            // Make sure building is constructed.
            player = await player.LoadAsync();

            Assert.True(player.GetWardById(ward.Id).IsUnlocked);

            // Make sure reward is awarded.
            Assert.True(player.Resources.Count > 0);
            Assert.False(player.HasFreeCitizenSlot);
        }
Exemplo n.º 2
0
        public async void UnlockingNotReady()
        {
            var wardMetaId = "Test_UnlockingNotReady";
            var unlockTime = TimeSpan.FromMinutes(10);
            var playerId   = "Test_UnlockingNotReady";

            // Create test builidng meta if it doesn't exist.
            var wardMeta = await new WardMeta(wardMetaId).LoadAsync();

            if (wardMeta == null)
            {
                wardMeta            = new WardMeta(wardMetaId);
                wardMeta.UnlockTime = unlockTime;
                await wardMeta.InsertAsync();
            }

            // Create test player and ward.
            var ward = new Ward(wardMetaId);

            ward.UnlockTask = new TimeTask(wardMeta.UnlockTime);
            var player = await Helpers.CreateTestPlayer(playerId, ward : ward);

            // Auth player.
            var sessionToken = Helpers.GetSessionToken(playerId);

            // Mock data.
            var data = JToken.Parse($@"{{
                'PlayerId':'{playerId}',
                'SessionToken':'{sessionToken}',
                'WardId':'{ward.Id}'
            }}");

            // Execute controller.
            var controller    = new FinishWardUnlockingController();
            var responseToken = await controller.HandleHttpRequestAsync(data);

            // Assert controller response status is NotReady.
            Assert.Equal(responseToken["Status"], JStatus.NotReady.JToken["Status"]);

            // Make sure ward is not unlocked.
            player = await player.LoadAsync();

            Assert.False(player.GetWardById(ward.Id).IsUnlocked);
        }
Exemplo n.º 3
0
        public async void UnlockingStarted()
        {
            var wardMetaId = "Test_UnlockingStarted";
            var playerId   = "Test_UnlockingStarted";

            // Create test ward meta if it doesn't exist.
            var wardMeta = await new WardMeta(wardMetaId).LoadAsync();

            if (wardMeta == null)
            {
                wardMeta = new WardMeta(wardMetaId);
                await wardMeta.InsertAsync();
            }

            // Create test player and ward.
            var ward   = new Ward(wardMetaId);
            var player = await Helpers.CreateTestPlayer(playerId, ward : ward);

            // Auth player.
            var sessionToken = Helpers.GetSessionToken(playerId);

            // Mock data.
            var data = JToken.Parse($@"{{
                'PlayerId':'{playerId}',
                'SessionToken':'{sessionToken}',
                'WardId':'{ward.Id}',
            }}");

            // Execute controller.
            var controller    = new StartWardUnlockingController();
            var responseToken = await controller.HandleHttpRequestAsync(data);

            // Assert controller response status is OK.
            Assert.Equal(responseToken["Status"], JStatus.Ok.JToken["Status"]);

            // Make sure unlock is started.
            player = await player.LoadAsync();

            Assert.False(player.GetWardById(ward.Id).IsUnlocked);
            Assert.True(player.GetWardById(ward.Id)?.UnlockTask != null);
        }