public KeyValuePair <string, string> DetectLang(string text) { XmlDocument document = new XmlDocument(); document.LoadXml(_api.Detect(ApiKey, text)); foreach (XmlElement e in document.GetElementsByTagName("DetectedLang")) { return(LangByKey(e.Attributes["lang"].Value)); } return(new KeyValuePair <string, string>()); }
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."); }