public string Translate(string text) { if (string.IsNullOrEmpty(srcLangKey)) { SetSourceLang(DetectLang(text)); } XmlDocument document = new XmlDocument(); var xml = _api.Translate(ApiKey, text, TranslateDirection); document.LoadXml(xml); foreach (XmlElement e in document.GetElementsByTagName("text")) { return(e.InnerText); } return(""); }
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."); }