public void TestPrelauchApplicationUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            // keep artifacts not enabled by default
            Assert.That(setup.ContainsArgument <PrelauchApplicationArgument>(), Is.False);

            // keep artifacts enabled
            settings.PrelaunchApplication = true;
            setup.Setup(settings);

            Assert.That(setup.ContainsArgument <PrelauchApplicationArgument>(), Is.True);
        }
        public void TestQuietLoggingUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            // quiet logging not enabled by default
            Assert.That(setup.ContainsArgument <QuietLoggingArgument>(), Is.False);

            // quiet logging enabled
            settings.QuietLogging = true;
            setup.Setup(settings);

            Assert.That(setup.ContainsArgument <QuietLoggingArgument>(), Is.True);
        }
        public void TestDeveloperModeBreakOnAppStartUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode        = true;
            settings.BreakOnApplicationStart = true;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.ContainsArgument <BreakOnAppStartArgument>(), Is.True);

            // reset for negative case
            settings.BreakOnApplicationStart = false;
            setup.Setup(settings);
            Assert.That(setup.ContainsArgument <BreakOnAppStartArgument>(), Is.False);
        }
		public void TestDeveloperModeExternalNodeJsLibraryIsUsed()
		{
			string testNodeJs = "testNodeJs"; 
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.UseExternalNodeJSBinary = true;
			settings.ExternalNodeJSBinary = testNodeJs;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.Filename, Is.EqualTo(testNodeJs));

			//reset for negative case
			settings.UseExternalNodeJSBinary = false;
			setup.Setup(settings);
			Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
		}
        public void TestDeveloperModeExternalAppiumPackageIsUsed()
        {
            string test = "app";
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode         = true;
            settings.UseExternalAppiumPackage = true;
            settings.ExternalAppiumPackage    = test;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.WorkingDirectory, Is.EqualTo(test));

            // reset for negative case
            settings.UseExternalAppiumPackage = false;
            setup.Setup(settings);
            Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
        }
        public void TestDeveloperModeExternalNodeJsLibraryIsUsed()
        {
            string testNodeJs = "testNodeJs";
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode        = true;
            settings.UseExternalNodeJSBinary = true;
            settings.ExternalNodeJSBinary    = testNodeJs;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.Filename, Is.EqualTo(testNodeJs));

            //reset for negative case
            settings.UseExternalNodeJSBinary = false;
            setup.Setup(settings);
            Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
        }
		public void TestDeveloperModeExternalAppiumPackageIsUsed()
		{
			string test = "app";
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.UseExternalAppiumPackage = true;
			settings.ExternalAppiumPackage = test;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.WorkingDirectory, Is.EqualTo(test));

			// reset for negative case
			settings.UseExternalAppiumPackage = false;
			setup.Setup(settings);
			Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
		}
		public void TestPrelauchApplicationUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			// keep artifacts not enabled by default
			Assert.That(setup.ContainsArgument<PrelauchApplicationArgument>(), Is.False);

			// keep artifacts enabled
			settings.PrelaunchApplication = true;
			setup.Setup(settings);

			Assert.That(setup.ContainsArgument<PrelauchApplicationArgument>(), Is.True);
		}
		public void TestQuietLoggingUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			// quiet logging not enabled by default
			Assert.That(setup.ContainsArgument<QuietLoggingArgument>(), Is.False);

			// quiet logging enabled
			settings.QuietLogging = true;
			setup.Setup(settings);

			Assert.That(setup.ContainsArgument<QuietLoggingArgument>(), Is.True);
		}
		public void TestDeveloperModeBreakOnAppStartUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.BreakOnApplicationStart = true;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.ContainsArgument<BreakOnAppStartArgument>(), Is.True);
			
			// reset for negative case
			settings.BreakOnApplicationStart = false;
			setup.Setup(settings);
			Assert.That(setup.ContainsArgument<BreakOnAppStartArgument>(), Is.False);
		}