public void DecideTranslationType_IsLegendary_TranslatorTypeEqualsYoda() { var pokemon = new Domain.Pokemon("name", new TranslatedText("description"), "waters-edge", true); TranslationType translationType = _translatorFactory.DecideTranslationType(pokemon); Assert.AreEqual(TranslationType.Yoda, translationType); }
public void DecideTranslationType_NotLegendaryOrCaveHabitat_TranslatorTypeEqualsShakespeare(string habitat) { var pokemon = new Domain.Pokemon("name", new TranslatedText("description"), habitat, false); TranslationType translationType = _translatorFactory.DecideTranslationType(pokemon); Assert.AreEqual(TranslationType.Shakespeare, translationType); }
public async Task TranslateDescription_DescriptionCanBeTranslated_ReturnedPokemonHasTranlatedDescription() { string description = "Hello, good evening and welcome."; Domain.Pokemon pokemon = new Domain.Pokemon("n", new TranslatedText(description), "h", true); TranslationType translationType = TranslationType.Yoda; _mockTranslationTypeDecider.Setup(ttd => ttd.DecideTranslationType(pokemon)) .Returns(translationType); string translatedDescription = "Welcome, good evening and hello"; _mockTranslator.Setup(t => t.Read(It.IsAny <TranslationRequest>())) .ReturnsAsync(new TranslationResult() { Contents = new Contents() { Translated = translatedDescription } }); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); Assert.AreEqual(translatedDescription, translatedPokemon.Description.Text); }
public void DecideTranslationType_CaveHabitat_TranslatorTypeEqualsYoda() { var pokemon = new Domain.Pokemon("name", new TranslatedText("description"), "cave", false); TranslationType translationType = _translatorFactory.DecideTranslationType(pokemon); Assert.AreEqual(TranslationType.Yoda, translationType); }
public async Task TranslateDescription_NullPokemon_NullPokemonReturned() { Domain.Pokemon pokemon = null; Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); Assert.IsNull(translatedPokemon); }
public async Task TranslateDescription_DescriptionCannotBeTranslated_PokemonHasInputDescription(string description) { Domain.Pokemon pokemon = new Domain.Pokemon("n", new TranslatedText(description), "h", true); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); Assert.AreEqual(pokemon.Description, translatedPokemon.Description); }
public async Task TranslateDescription_DescriptionIsNull_DescriptionIsNull() { Domain.Pokemon pokemon = new Domain.Pokemon("n", null, "h", true); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); Assert.IsNull(translatedPokemon.Description); }
public TranslationType DecideTranslationType(Domain.Pokemon pokemon) { if (pokemon.Habitat == _caveHabitatName || pokemon.IsLegendary) { return(TranslationType.Yoda); } return(TranslationType.Shakespeare); }
public async Task GetPokemon_ReaderReturnsNull_NullIsReturned(string name) { _mockPokemonReader.Setup(pr => pr.Read(It.IsAny <string>())) .ReturnsAsync((PokemonSpecies)null); Domain.Pokemon returnedPokemon = await _pokemonService.GetPokemon(name); Assert.IsNull(returnedPokemon); }
public void Map_NullFlavorTextEntries_HasNullDescriptionText() { var pokemonSpecies = new PokemonSpecies() { Name = "mewtwo" }; Domain.Pokemon pokemon = _mapper.Map(pokemonSpecies); Assert.IsNull(pokemon.Description.Text); }
public void Map_IsNotLegendary_IsNotLegendary() { var pokemonSpecies = new PokemonSpecies() { Name = "mewtwo", IsLegendary = false }; Domain.Pokemon pokemon = _mapper.Map(pokemonSpecies); Assert.IsFalse(pokemon.IsLegendary); }
public async Task TranslateDescription_DescriptionCanBeTranslated_TranslationTypeDeciderWasCalledOnce() { string description = "Hello, good evening and welcome."; Domain.Pokemon pokemon = new Domain.Pokemon("n", new TranslatedText(description), "h", true); _mockTranslationTypeDecider.Setup(ttd => ttd.DecideTranslationType(pokemon)) .Returns(TranslationType.Yoda); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); _mockTranslationTypeDecider.Verify(tf => tf.DecideTranslationType(pokemon), Times.Once); }
public void Map_HyphenatedHabitat_HasCorrectHabitat() { var pokemonSpecies = new PokemonSpecies() { Name = "mewtwo", Habitat = new Habitat() { Name = "waters-edge" } }; Domain.Pokemon pokemon = _mapper.Map(pokemonSpecies); Assert.AreEqual("waters-edge", pokemon.Habitat); }
public async Task TranslateDescription_DescriptionCanBeTranslated_TranslatorWasCalledOnceWithCorrectRequest() { string description = "Hello, good evening and welcome."; Domain.Pokemon pokemon = new Domain.Pokemon("n", new TranslatedText(description), "h", true); TranslationType translationType = TranslationType.Yoda; _mockTranslationTypeDecider.Setup(ttd => ttd.DecideTranslationType(pokemon)) .Returns(translationType); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); _mockTranslator.Verify(t => t.Read(It.Is <TranslationRequest>(tr => tr.Text == description && tr.Type == translationType)), Times.Once); }
public async Task GetPokemon_ValidName_ResultOfMapperIsReturned(string name) { var pokemonSpecies = new PokemonSpecies(); _mockPokemonReader.Setup(pr => pr.Read(It.IsAny <string>())) .ReturnsAsync(pokemonSpecies); var mappedPokemon = new Domain.Pokemon("name", new TranslatedText("description"), "habitat", true); _mockPokemonMapper.Setup(m => m.Map(It.IsAny <PokemonSpecies>())) .Returns(mappedPokemon); Domain.Pokemon returnedPokemon = await _pokemonService.GetPokemon(name); Assert.AreEqual(mappedPokemon, returnedPokemon); }
public async Task TranslateDescription_ThrowsHttpRequestException_ReturnedPokemontDescriptionHasTranslationTypeOfNone() { string description = "Hello, good evening and welcome."; Domain.Pokemon pokemon = new Domain.Pokemon("n", new TranslatedText(description), "h", true); var translationType = TranslationType.Yoda; _mockTranslationTypeDecider.Setup(tf => tf.DecideTranslationType(pokemon)) .Returns(translationType); _mockTranslator.Setup(t => t.Read(It.IsAny <TranslationRequest>())).ThrowsAsync(new HttpRequestException()); Domain.Pokemon translatedPokemon = await _translationService.TranslateDescription(pokemon); Assert.AreEqual(TranslationType.None, translatedPokemon.Description.TranslationType); }
public void Map_NoEnglishFlavorTextEntry_HasNullDescriptionText() { var pokemonSpecies = new PokemonSpecies() { Name = "mewtwo", FlavorTextEntries = new List <FlavorTextEntry> { new FlavorTextEntry { FlavorText = "not in English", Language = new Language() { Name = "fr" } } } }; Domain.Pokemon pokemon = _mapper.Map(pokemonSpecies); Assert.IsNull(pokemon.Description.Text); }
public async Task <Domain.Pokemon> TranslateDescription(Domain.Pokemon pokemon) { if (pokemon == null || pokemon.Description == null || string.IsNullOrWhiteSpace(pokemon.Description.Text)) { return(pokemon); } TranslationType translationType = _translationTypeDecider.DecideTranslationType(pokemon); IReader <TranslationRequest, TranslationResult> translator = _translatorFactory?.Invoke(translationType); TranslationRequest translationRequest = new TranslationRequest(translationType, pokemon.Description.Text); try { TranslationResult translatedResult = await translator.Read(translationRequest); TranslatedText translatedText = new TranslatedText(translatedResult.Contents.Translated, translationType); return(new Domain.Pokemon(pokemon.Name, translatedText, pokemon.Habitat, pokemon.IsLegendary)); } catch { return(pokemon); } }
public void Map_PropertiesAllValid_HasCorrectName() { Domain.Pokemon pokemon = _mapper.Map(_mewtwoPokemonSpecies); Assert.AreEqual("mewtwo", pokemon.Name); }
public void Map_PropertiesAllValid_HasCorrectDescriptionText() { Domain.Pokemon pokemon = _mapper.Map(_mewtwoPokemonSpecies); Assert.AreEqual("Created by a scientist.", pokemon.Description.Text); }
public async Task GetPokemon_ValidName_ReaderIsCalled(string name) { Domain.Pokemon pokemon = await _pokemonService.GetPokemon(name); _mockPokemonReader.Verify(pr => pr.Read(name)); }
public void Map_PropertiesAllValid_HasCorrectHabitat() { Domain.Pokemon pokemon = _mapper.Map(_mewtwoPokemonSpecies); Assert.AreEqual("rare", pokemon.Habitat); }
public void Map_IsLegendary_IsLegendary() { Domain.Pokemon pokemon = _mapper.Map(_mewtwoPokemonSpecies); Assert.AreEqual(true, pokemon.IsLegendary); }