Beispiel #1
0
        public async Task GET_ALL_SET_NEW_LANGUAGE_SAVE_GET_CONFIRMNEWLANGUAGE()
        {
            var        allPhrasesCount = -1;
            PhraseEdit testPhrase      = null;
            PhraseEdit savedPhrase     = null;
            PhraseEdit gottenPhrase    = null;

            PhraseList allPhrases        = null;
            PhraseList savedAllPhrases   = null;
            PhraseList confirmAllPhrases = null;

            var isAsyncComplete = false;
            var hasError        = false;

            EnqueueConditional(() => isAsyncComplete);
            await Setup();

            try
            {
                //LOAD--------------
                allPhrases = await PhraseList.GetAllAsync();

                allPhrasesCount = allPhrases.Count;

                testPhrase = (from phrase in allPhrases
                              where phrase.Language.Text == _ServerEnglishLang.Text
                              select phrase).First();

                //testPhrase is english

                //EDIT---------
                testPhrase.BeginEdit();
                testPhrase.Language = _ServerSpanishLang;
                testPhrase.ApplyEdit();

                //SAVE-------------
                savedAllPhrases = await allPhrases.SaveAsync();

                savedPhrase = (from phrase in savedAllPhrases
                               where phrase.Text == testPhrase.Text
                               select phrase).First();

                Assert.AreEqual(_ServerSpanishLang.Text, savedPhrase.Language.Text);
                Assert.AreEqual(_ServerSpanishLang.Id, savedPhrase.Language.Id);
                Assert.AreEqual(_ServerSpanishLang.Id, savedPhrase.LanguageId);

                //GET-----------
                gottenPhrase = await PhraseEdit.GetPhraseEditAsync(savedPhrase.Id);

                //CONFIRM----------
                //confirm language swap worked.
                Assert.AreEqual(_ServerSpanishLang.Text, gottenPhrase.Language.Text);
                Assert.AreEqual(_ServerSpanishLang.Id, gottenPhrase.Language.Id);
                Assert.AreEqual(_ServerSpanishLang.Id, gottenPhrase.LanguageId);
                //confirm we haven't glitched our data and magically doubled the size of our allPhrases.
                confirmAllPhrases = await PhraseList.GetAllAsync();

                Assert.AreEqual(allPhrasesCount, confirmAllPhrases.Count);
            }
            catch
            {
                hasError = true;
            }
            finally
            {
                EnqueueCallback(
                    () => Assert.IsFalse(hasError),
                    () => Assert.IsNotNull(allPhrases),
                    () => Assert.IsNotNull(confirmAllPhrases),

                    //KEEP THIS LAST IN THE CALLBACKS
                    () => Teardown()
                    );

                EnqueueTestComplete();
                isAsyncComplete = true;
            }
        }