public TranslatorModel(string apiKey, string uiLang, ITranslateAPI api) { if (string.IsNullOrEmpty(apiKey) || string.IsNullOrEmpty(uiLang)) { throw new TranslatorModelException("API key must be specified"); } _api = api; ApiKey = apiKey; UiLang = uiLang; }
[TestCase("TestDataLangs.xml", "en", "английский")] // верно ли задан атрибут? public void LangByKey_ValidXmlResponse_WorksCorrectly(string testDataFile, string key, string expect) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); string responseLangs = File.ReadAllText(testDataFile); fakeYandexAPI.GetLangs(Arg.Any <string>(), Arg.Any <string>()).Returns(responseLangs); ITranslatorModel model = new TranslatorModel("api_key", "ui", fakeYandexAPI); var l = model.LangByKey(key); Assert.AreEqual(l.Value, expect); }
public void LangsProperty_ValidXmlResponse_ContainsSomething(string testDataFile) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); string responseLangs = File.ReadAllText(testDataFile); fakeYandexAPI.GetLangs(Arg.Any <string>(), Arg.Any <string>()).Returns(responseLangs); ITranslatorModel model = new TranslatorModel("api_key", "ui", fakeYandexAPI); var langs = model.Langs; Assert.IsTrue(model.Langs.Count > 0); }
public void LangsProperty_ErrorXmlResponse_ThrowsExWithErrorMessage(string testDataFile) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); XmlDocument doc = new XmlDocument(); string responseLangs = File.ReadAllText(testDataFile); doc.LoadXml(responseLangs); fakeYandexAPI.GetLangs(Arg.Any <string>(), Arg.Any <string>()).Returns(responseLangs); ITranslatorModel model = new TranslatorModel("api_key", "ui", fakeYandexAPI); Exception ex = Assert.Catch <Exception>(() => model.Langs.ToString()); string expectedMessage = doc.LastChild.Attributes["message"].Value; StringAssert.Contains(expectedMessage, ex.Message); }
public void DetectLang_ValidXmlResponse_WorksCorrectly( string text, string testDataFile, string testDataLangsFile, string expect) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); string responseLangs = File.ReadAllText(testDataLangsFile); string responseDetect = File.ReadAllText(testDataFile); fakeYandexAPI.GetLangs(Arg.Any <string>(), Arg.Any <string>()).Returns(responseLangs); fakeYandexAPI.Detect(Arg.Any <string>(), text).Returns(responseDetect); ITranslatorModel model = new TranslatorModel("api_key", "ui", fakeYandexAPI); string actual = model.DetectLang(text).Key; Assert.AreEqual(expect, actual); }
public void Translate_ValidXmlResponse_WorksCorrectly( string text, string sourceLang, string testDataFile, string testDetectDataFile, string testDataLangsFile, string expect) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); string responseLangs = File.ReadAllText(testDataLangsFile); string responseTranslate = File.ReadAllText(testDataFile); string responseDetect = File.ReadAllText(testDetectDataFile); fakeYandexAPI.GetLangs(Arg.Any <string>(), Arg.Any <string>()).Returns(responseLangs); fakeYandexAPI.Detect(Arg.Any <string>(), text).Returns(responseDetect); fakeYandexAPI.Translate(Arg.Any <string>(), text, sourceLang).Returns(responseTranslate); ITranslatorModel model = new TranslatorModel("api_key", "ui", fakeYandexAPI); model.SetTargetLang(model.LangByKey(sourceLang.Split('-')[1])); string actual = model.Translate(text); Assert.AreEqual(expect, actual, "Model.Translate() works."); }
public void ctor_UiIsNullOrEmpty_Throws(string apiKey, string ui) { ITranslateAPI fakeYandexAPI = Substitute.For <ITranslateAPI>(); Assert.Throws <TranslatorModelException>(() => new TranslatorModel(apiKey, ui, fakeYandexAPI)); }