Пример #1
0
        public void Can_Display_Pokemon()
        {
            // Arrange
            Mock <IPokemonRepository> mock = new Mock <IPokemonRepository>();

            mock.Setup(m => m.Pokemons).Returns((new Pokemon[] {
                new Pokemon {
                    PokemonID = 1, Name = "TestPokemon1", Type1 = new Type(1, "TypeTest1"), Type2 = null,
                    ExperienceGrowth = 10000, EggSteps = 1000, Attack = 100, Defense = 100, SpAttack = 100, SpDefense = 100, Speed = 100,
                    IsLegendary = false, Generation = 1, HP = 100
                },
                new Pokemon {
                    PokemonID = 2, Name = "TestPokemon2", Type1 = new Type(2, "TypeTest2"), Type2 = null,
                    ExperienceGrowth = 20000, EggSteps = 2000, Attack = 200, Defense = 200, SpAttack = 200, SpDefense = 200, Speed = 200,
                    IsLegendary = false, Generation = 2, HP = 200
                }
            }).AsQueryable <Pokemon>());

            // Arrange
            PokemonController controller =
                new PokemonController(mock.Object)
            {
            };

            // Act
            PokemonDetailViewModel result = controller.Pkm(2).ViewData.Model as PokemonDetailViewModel;

            // Assert
            Assert.Equal(2, result.Pokemon.PokemonID);
            Assert.Equal("TestPokemon2", result.Pokemon.Name);
        }
Пример #2
0
        public async Task <IActionResult> Edit(PokemonDetailViewModel pokemonDetailViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    await _pokedexAppLogic.EditPokemon(pokemonDetailViewModel);

                    return(View(Constants.Success, new SuccessViewModel()
                    {
                        ActionName = "edit"
                    }));
                }
                else
                {
                    _logger.LogInformation(Constants.InvalidRequest);

                    return(await Edit(pokemonDetailViewModel.MyPokemonId.Value));
                }
            }
            catch (Exception ex)
            {
                return(Error(ex));
            }
        }
Пример #3
0
        public async Task GetNationalDexPokemonByIdIsSuccessfulAndLogsInformation()
        {
            PokemonDetailViewModel pokemonDetailViewModel = await _pokedexAppLogic.GetNationalDexPokemonById(0);

            Assert.AreEqual("Name0", pokemonDetailViewModel.Ability);
            Assert.AreEqual("Name0", pokemonDetailViewModel.Category);
            Assert.AreEqual("Desc0", pokemonDetailViewModel.Description);
            Assert.AreEqual(1, pokemonDetailViewModel.HeightInInches);
            Assert.AreEqual("Name1", pokemonDetailViewModel.HiddenAbility);
            Assert.AreEqual("http://0.com", pokemonDetailViewModel.ImageURL);
            Assert.AreEqual("JapaneseName0", pokemonDetailViewModel.JapaneseName);
            Assert.AreEqual("Name0", pokemonDetailViewModel.Name);
            Assert.AreEqual(0, pokemonDetailViewModel.NationalDexPokemonId);
            Assert.AreEqual("Name0", pokemonDetailViewModel.TypeOne);
            Assert.AreEqual("Name1", pokemonDetailViewModel.TypeTwo);
            Assert.AreEqual(1, pokemonDetailViewModel.WeightInPounds);

            Assert.IsNull(pokemonDetailViewModel.Date);
            Assert.IsNull(pokemonDetailViewModel.Level);
            Assert.IsNull(pokemonDetailViewModel.Location);
            Assert.IsNull(pokemonDetailViewModel.MyPokemonId);
            Assert.IsNull(pokemonDetailViewModel.Nickname);
            Assert.IsNull(pokemonDetailViewModel.PokeballImageURL);
            Assert.IsNull(pokemonDetailViewModel.Sex);

            _pokedexRepositoryMock.Verify(prm => prm.GetNationalDexPokemonById(0), Times.Once);

            VerifyLoggerAppMockLogsInformation("Mapping 1 Pokémon View Models.");
        }
Пример #4
0
        public async Task <PokemonDetailViewModel> GetNationalDexPokemonById(int id)
        {
            tlkpNationalDex pokemon = await _pokedexRepository.GetNationalDexPokemonById(id);

            _logger.LogInformation(string.Format(Constants.InformationalMessageMappingWithCount, 1, Constants.Pokemon, ViewModels));

            PokemonDetailViewModel pokemonDetailViewModel = _mapper.Map <PokemonDetailViewModel>(pokemon);

            return(pokemonDetailViewModel);
        }
Пример #5
0
        public async Task <PokemonDetailViewModel> EditPokemon(PokemonDetailViewModel pokemonDetailViewModel)
        {
            tblMyPokedex pokemon = await MapDetailViewModelToMyPokemon(pokemonDetailViewModel);

            await _pokedexRepository.EditPokemon(pokemon);

            _logger.LogInformation(Constants.Updated + " " + Constants.Pokemon + ": " + pokemonDetailViewModel.MyPokemonId);

            return(pokemonDetailViewModel);
        }
Пример #6
0
        public async Task <IActionResult> Detail(int id)
        {
            try
            {
                PokemonDetailViewModel nationalDexPokemon = await _pokedexAppLogic.GetNationalDexPokemonById(id);

                return(View(nationalDexPokemon));
            }
            catch (Exception ex)
            {
                return(Error(ex));
            }
        }
Пример #7
0
        public async Task <IActionResult> Detail(Guid id)
        {
            try
            {
                PokemonDetailViewModel myPokemon = await _pokedexAppLogic.GetMyPokemonById(id);

                return(View(myPokemon));
            }
            catch (Exception ex)
            {
                return(Error(ex));
            }
        }
Пример #8
0
        public async Task <IActionResult> Edit(Guid id)
        {
            try
            {
                PokemonDetailViewModel pokemonDetailViewModel = await _pokedexAppLogic.GetMyPokemonById(id);

                pokemonDetailViewModel.IsEditMode = true;

                return(View(Constants.Detail, pokemonDetailViewModel));
            }
            catch (Exception ex)
            {
                return(Error(ex));
            }
        }
Пример #9
0
        public async Task EditWithGuidIsSuccessfulandCallsLogic()
        {
            _pokedexAppLogicMock.Setup(plm => plm.GetMyPokemonById(DataGenerator.DefaultGuid))
            .ReturnsAsync(new PokemonDetailViewModel()
            {
                IsEditMode = false
            });

            IActionResult result = await _pokedexController.Edit(DataGenerator.DefaultGuid);

            PokemonDetailViewModel viewModel = DataGenerator.GetViewModel <PokemonDetailViewModel>(result);

            Assert.IsTrue(viewModel.IsEditMode);

            _pokedexAppLogicMock.Verify(plm => plm.GetMyPokemonById(DataGenerator.DefaultGuid), Times.Once);
        }
Пример #10
0
        private async Task <tblMyPokedex> MapDetailViewModelToMyPokemon(PokemonDetailViewModel pokemonDetailViewModel)
        {
            _logger.LogInformation(Constants.Mapping + " " + Constants.Pokemon + " " + ViewModels);

            tlkpNationalDex nationalDexLookup = await _pokedexRepository.GetNationalDexPokemonById(pokemonDetailViewModel.NationalDexPokemonId.Value);

            tblMyPokedex beforeUpdates = await _pokedexRepository.GetMyPokemonById(pokemonDetailViewModel.MyPokemonId.Value);

            tblMyPokedex updatedPokemon = _mapper.Map <tblMyPokedex>(pokemonDetailViewModel);

            updatedPokemon.PokeballId = beforeUpdates.PokeballId;
            updatedPokemon.Pokeball   = beforeUpdates.Pokeball;
            updatedPokemon.Pokemon    = nationalDexLookup;
            updatedPokemon.PokemonId  = nationalDexLookup.Id;

            return(updatedPokemon);
        }
Пример #11
0
        public async Task GetMyPokemonByIdIsSuccessfulAndLogsInformation()
        {
            PokemonDetailViewModel pokemonDetailViewModel = await _pokedexAppLogic.GetMyPokemonById(DataGenerator.DefaultGuid);

            Assert.AreEqual(DateTime.Today, pokemonDetailViewModel.Date);
            Assert.AreEqual("http://0.com", pokemonDetailViewModel.ImageURL);
            Assert.AreEqual(1, pokemonDetailViewModel.Level);
            Assert.AreEqual("0 Main Street", pokemonDetailViewModel.Location);
            Assert.AreEqual(DataGenerator.DefaultGuid, pokemonDetailViewModel.MyPokemonId);
            Assert.AreEqual("Name0", pokemonDetailViewModel.Name);
            Assert.AreEqual(0, pokemonDetailViewModel.NationalDexPokemonId);
            Assert.AreEqual("Nickname0", pokemonDetailViewModel.Nickname);
            Assert.AreEqual("http://0.com", pokemonDetailViewModel.PokeballImageURL);
            Assert.AreEqual(true, pokemonDetailViewModel.Sex);

            _pokedexRepositoryMock.Verify(prm => prm.GetMyPokemonById(DataGenerator.DefaultGuid), Times.Once);

            VerifyLoggerAppMockLogsInformation("Mapping 1 Pokémon View Models.");
        }
Пример #12
0
        public ViewResult Pkm(int?id)
        {
            PokemonDetailViewModel ViewModel = new PokemonDetailViewModel();

            ViewModel.Pokemon = repository.Pokemons.Where(p => p.PokemonID == id).Single();

            var pokemonAbility = (from ability in repository.Abilities
                                  join pkmAbility in repository.PokemonAbilities on ability.AbilityID equals pkmAbility.AbilityID
                                  where pkmAbility.PokemonID == id
                                  select ability);

            ViewModel.Abilities = pokemonAbility;

            ViewModel.Type1 = repository.Pokemons.Where(p => p.PokemonID == id).Select(p => p.Type1).Single();
            var type1id = ViewModel.Type1.TypeID;
            int?type2id;

            ViewModel.Type2 = repository.Pokemons.Where(p => p.PokemonID == id).Select(p => p.Type2).Single();
            if (ViewModel.Type2 is null)
            {
                type2id = null;
            }
            else
            {
                type2id = ViewModel.Type2.TypeID;
            }

            var query1 = repository.Pokemons.Where(p => p.PokemonID == (id - 1));
            var query2 = repository.Pokemons.Where(p => p.PokemonID == (id + 1));

            ViewModel.PrevPokemon = query1.Any() ? query1.Single().Name : null;
            ViewModel.NextPokemon = query2.Any() ? query2.Single().Name : null;

            float[] TypesDamageMultiplierList = CalculateType.CalculateTypes(type1id, type2id);
            ViewModel.Weaknesses = CalculateType.FindWeaknesses(TypesDamageMultiplierList);
            ViewModel.Resists    = CalculateType.FindResists(TypesDamageMultiplierList);
            ViewModel.Immunes    = CalculateType.FindImmunes(TypesDamageMultiplierList);

            return(View(ViewModel));
        }
Пример #13
0
 public PokemonDetailPage()
 {
     InitializeComponent();
     DataContextChanged    += (a, b) => vm = (PokemonDetailViewModel)b.NewValue;
     MovesCard.ItemClicked += MovesCard_ItemClicked;
 }
Пример #14
0
 public PokemonDetail(string url)
 {
     BindingContext = new PokemonDetailViewModel(url);
     InitializeComponent();
 }