public SelectCharacterModel(SelectCharacterController SelectCharacterController)
 {
     m_selectCharacterController = SelectCharacterController;
     m_selectedListIndex = 0;
     IsCharacterListRequestPending = false;
     IsCharacterDeleteRequestPending = false;
     IsCharacterBindRequestPending = false;
 }
Example #2
0
 public SelectCharacterModel(SelectCharacterController SelectCharacterController)
 {
     m_selectCharacterController     = SelectCharacterController;
     m_selectedListIndex             = 0;
     IsCharacterListRequestPending   = false;
     IsCharacterDeleteRequestPending = false;
     IsCharacterBindRequestPending   = false;
 }
        public async void AvailableCharacterSelected()
        {
            var buildingMetaId = "Test_AvailableCharacterSelected";
            var classMetaId    = "Test_AvailableCharacterSelected";
            var playerId       = "Test_AvailableCharacterSelected";
            var characterIndex = 0;

            // Create test class meta if it doesn't exist.
            var classMeta = await new ClassMeta(classMetaId).LoadAsync();

            if (classMeta == null)
            {
                classMeta             = new ClassMeta(classMetaId);
                classMeta.Requirement = new Requirement()
                {
                    BuildingMetaIds = new List <string> {
                        buildingMetaId
                    }
                };
                await classMeta.InsertAsync();
            }

            // Create test player, character and required building.
            var building = new Building(buildingMetaId);

            building.IsConstructed = true;
            var character = new Character(classMetaId);
            var player    = await Helpers.CreateTestPlayer(playerId, building : building, character : character);

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

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

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

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

            // Make sure char is selected for the first time (req-free).
            player = await player.LoadAsync();

            Assert.True(player.SelectedCharacterIndex == characterIndex);

            // Make sure char is selected for the second time (with req checked).
            responseToken = await controller.HandleHttpRequestAsync(data);

            Assert.Equal(responseToken["Status"], JStatus.Ok.JToken["Status"]);
        }