using FWHandler;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading;

namespace UITests
{
    [TestFixture]
    class TC_001_MenuItems : UITestFixture
    {
        [Test] // Tento test vloží do hlavní editační části text a poté se pokusí otevřit novou poznámku
        public void TC_001_001_ClickOnMenuItemFileAndNewFile_CheckIfNewOpen()
        {
            InitUiTest(); // Interní inicializace testu -> build aplikace, jméno metody do reportu atd...
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString; 
            MenuItem.Click("Soubor").Click("Nový"); 
            Button.Click("CommandButton_7", waitStandart); 
            Assert.IsTrue(TextBox.Find("15").Text == "", GuesErrorProvider.CompareTwoValuesTextBoxError);
            MenuItem.Click("Soubor").Click("Nový");
            TextBox.Find("15").Text = "";
        }


        [Test] // Otevře existující popsanou .txt poznámku a porovnájí s očekávaným výstupem
        public void TC_001_002_ClickOnMenuItemOpenAndPickFile_CheckIfOpenCorrectly()
        {
            InitUiTest();
            MenuItem.Click("Soubor").Click("Otevřít...");
            TextBox.Find("1148").Text = PathProvider.Notepad_PathToApp;
            ComboBox.Select("1136", 0); // ComboBox.Select("1136", jmeno);
            TextBox.Find("1136").Text = ValueProvider.Notepad_DocumentType;
            Input.KeyBoardSpecialType(EnumProviderPressSpecialKeys.Enter);
            Assert.IsTrue(TextBox.Find("15").Text == ValueProvider.Notepad_TestString,
                GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test] // Zapíše do hlavní editační oblasti, uloží soubor a zkontroluje, jestli se obsah souboru shoduje se zapsaným
        public void TC_001_003_InsertTextThenClickOnMenuItemExitAndSave_CheckIfExitedAndSaved()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString;
            MenuItem.Click("Soubor", waitSlow).Click("Ukončit", waitSlow);
            Button.Click("CommandButton_6", waitStandart);
            TextBox.Find("1001").Text = PathProvider.Notepad_TestFile;
            Input.KeyBoardSpecialType(EnumProviderPressSpecialKeys.Enter);
            bool isOff = false;
            try
            {
                App.AppAttachNewWindow("notepad.exe", waitSlow);
                isOff = false;
            }
            catch (Exception ex) { isOff = true; }

            //Assert.False(isOff == false, GuesErrorProvider.AppExitError);
            string fileString = File.Exists(PathProvider.Notepad_TestFile) == true ? 
                File.ReadAllText(PathProvider.Notepad_TestFile) : "";
            //Assert.IsTrue(fileString == ValueProvider.Notepad_TestString, GuesErrorProvider.CompareTwoValuesFileError);
        }
    }
}
