public void GenerateDummyDataTest()
        {
            DummyTranslationXMLGenerator myXMLGen = new DummyTranslationXMLGenerator();
            // it should create an XML File that can be read by the TranslationDictionary without crashing.
            string FileName = Path.GetTempFileName();

            File.Delete(FileName);
            myXMLGen.GenerateDummyData(FileName);
            myXMLGen.GenerateDummyData(null);
            myXMLGen.GenerateDummyData("");
            TranslationDictionary myDict = TranslationDictionary.LoadNewDictionary(FileName);

            Assert.IsTrue(myDict.Languages.Length > 0, " Languages did not load properly");

            foreach (Language l in myDict.Languages)
            {
                if (string.IsNullOrWhiteSpace(l.Name))
                {
                    Assert.Fail("Name of Language not set properly");
                }
                if (l.Words.Length <= 0)
                {
                    Assert.Fail(" Language does not contain words");
                }
                foreach (Word w in myDict.Languages.First().Words)
                {
                    if (string.IsNullOrWhiteSpace(w.Notation) || string.IsNullOrWhiteSpace(w.EnglishMeaning))
                    {
                        Assert.Fail("Word's notation or Englishmeaning did not get set properly");
                    }
                }
            }
            File.Delete(FileName);
            Console.WriteLine("Success: " + FileName);
        }
        public void SaveTest()
        {
            TranslationDictionary myTransDict = new TranslationDictionary();

            myTransDict.Languages = new Language[] {
                new Language("german", new Word[] {
                    new Word("hallo", "hello"),
                    new Word("der", "the"),
                    new Word("sein", "to be")
                }),
                new Language("chinese", new Word[] {
                    new Word("nihau", "hello"),
                    new Word("li", "the"),
                    new Word("lihe", "to be")
                })
            };
            string path = Path.GetTempFileName();

            File.Delete(path);
            myTransDict.Save(path);

            // test if file is  loadable.
            TranslationDictionary myLoadedTransDict = TranslationDictionary.LoadNewDictionary(path);

            Assert.AreEqual(2, myLoadedTransDict.Languages.Length);
            Assert.AreEqual("german", myLoadedTransDict.DetectLanguage("hallo").DetectedLanguage.Name);
            Assert.AreEqual("chinese", myLoadedTransDict.DetectLanguage("nihau").DetectedLanguage.Name);
            Assert.AreEqual(3, myLoadedTransDict.DetectLanguage("nihau").DetectedLanguage.Words.Length);

            // test some exceptions if you do something wrong (enter null etc. should throw exception)
            bool didThrowArgumentNulException = false;

            try
            {
                myTransDict.Save(null);
            }
            catch (ArgumentNullException ane)
            {
                didThrowArgumentNulException = true;
            }
            Assert.IsTrue(didThrowArgumentNulException);

            bool didThrowIOException = false;

            try
            {
                myTransDict.Save(Path.GetTempFileName()); // here the file already exists.
            }
            catch (IOException ex)
            {
                didThrowIOException = true;
            }
            Assert.IsTrue(didThrowIOException, "Save command should throw an exception when the file already exists (no override)");
        }
예제 #3
0
        public TranslatorService()
        {
            string XMLFileName = "TranslationDataBaseResources.xml";

            if (File.Exists(XMLFileName))
            {
                MyTranslationDictionary = TranslationDictionary.LoadNewDictionary(XMLFileName);
            }
            else
            {
                DummyTranslationXMLGenerator mygen = new DummyTranslationXMLGenerator();
                mygen.GenerateDummyData(XMLFileName);
                MyTranslationDictionary = TranslationDictionary.LoadNewDictionary(XMLFileName);
            }
        }