Exemplo n.º 1
0
        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.");
        }