using FWHandler;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading;
namespace UITests
{
    [TestFixture]
    class TS_004_ControlOperations : UITestFixture
    {
        [Test]
        public void TC_004_001_WriteText_Settings_GoBack()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString;
            MenuItem.Click("Úpravy").Click("Zpět");
            Assert.IsTrue(TextBox.Find("15").Text == "", GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test]
        public void TC_004_002_WriteText_Settings_SelectAllAndDelete()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString;
            MenuItem.Click("Úpravy").Click("Vybrat vše");
            MenuItem.Click("Úpravy").Click("Odstranit");
            Assert.IsTrue(TextBox.Find("15").Text == "", GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test] // Vloží text do hlavní editační části a pomocí menu Úpravy ho zkopiruje a vloží
        public void TC_004_003_WriteText_Settings_CopyPaste_Check()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString;
            MenuItem.Click("Úpravy").Click("Vybrat vše");
            MenuItem.Click("Úpravy").Click("Kopírovat");
            MenuItem.Click("Úpravy").Click("Odstranit");
            for (int i = 0; i < 5; i++)
            {
                MenuItem.Click("Úpravy").Click("Vložit");
                Input.KeyBoardSpecialType(EnumProviderPressSpecialKeys.Enter);
            }
            Assert.IsTrue(TextBox.Find("15").Text == ValueProvider.Notepad_CopyPasteTest,
                GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test]
        public void TC_004_004_WriteText_CutPaste_Check()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_TestString;
            MenuItem.Click("Úpravy").Click("Vybrat vše");
            MenuItem.Click("Úpravy").Click("Vyjmout");
            Assert.IsTrue(TextBox.Find("15").Text == "", GuesErrorProvider.CompareTwoValuesTextBoxError);
            MenuItem.Click("Úpravy").Click("Vložit");
            Assert.IsTrue(TextBox.Find("15").Text == ValueProvider.Notepad_TestString, GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test] // Přesuneme kurzor na řádek (pomocí Menu) a ověříme, jestli se doopravdy přesunul
        public void TC_004_005_Settings_FindRow_Check()
        {
            InitUiTest();
            TextBox.Find("15").Text = ValueProvider.Notepad_CopyPasteTest;
            MenuItem.Click("Úpravy").Click("Přejít...");
            TextBox.Find("Číslo řádku:", waitStandart).Text = "3";
            Button.Click("Přejít", waitStandart);
            Input.KeyBoardType('a');
            Assert.IsTrue(TextBox.Find("15").Text == ValueProvider.Notepad_CopyPasteTest_Modified, GuesErrorProvider.CompareTwoValuesTextBoxError);
        }

        [Test] // Vygeneruje pomocí menu datum ve standardním formátu, a ověří jeho správnost
        public void TC_004_006_Settings_GenerateTime_Check()
        {
            InitUiTest();
            MenuItem.Click("Úpravy").Click("Čas a datum");
            string notePad = TextBox.Find("15").Text;
            string[] splited = notePad.Split(' ');
            string notePadDate = splited[1];
            string notePadHour = splited[0].Substring(0, 2);
            string date = DateTime.Now.Date.ToString("dd/MM/yyyy");
            string hour = DateTime.Now.Hour.ToString();

            Assert.That(date == notePadDate, GuesErrorProvider.CompareTwoValuesTextBoxError);
            Assert.That(hour == notePadHour, GuesErrorProvider.CompareTwoValuesTextBoxError);
        }


    }
}
