diff --git a/MouseAlive.AcceptanceTests/App.config b/MouseAlive.AcceptanceTests/App.config new file mode 100644 index 0000000..dfe587f --- /dev/null +++ b/MouseAlive.AcceptanceTests/App.config @@ -0,0 +1,21 @@ + + + +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/MouseAlive.AcceptanceTests/MouseAlive.AcceptanceTests.csproj b/MouseAlive.AcceptanceTests/MouseAlive.AcceptanceTests.csproj new file mode 100644 index 0000000..e877e67 --- /dev/null +++ b/MouseAlive.AcceptanceTests/MouseAlive.AcceptanceTests.csproj @@ -0,0 +1,76 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762} + Library + Properties + MouseAlive.AcceptanceTests + MouseAlive.AcceptanceTests + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + SpecFlowSingleFileGenerator + MouseUtilities.feature.cs + + + + + True + True + MouseUtilities.feature + + + + + + + + + C:\Program Files (x86)\TechTalk\SpecFlow\TechTalk.SpecFlow.dll + + + + + {284DE1A9-7189-4B58-8573-81681A982F9F} + MouseAlive + + + + + \ No newline at end of file diff --git a/MouseAlive.AcceptanceTests/MouseUtilities.feature b/MouseAlive.AcceptanceTests/MouseUtilities.feature new file mode 100644 index 0000000..6f037d6 --- /dev/null +++ b/MouseAlive.AcceptanceTests/MouseUtilities.feature @@ -0,0 +1,9 @@ +Feature: Mouse Utilities + In order to keep the screen saver from activating + As a remote support agent + I want to have the mouse moved for me automatically + +Scenario: Move Mouse + Given I am working on a machine with MouseAlive + When a certain amount of time has elapsed + Then the mouse should move automatically diff --git a/MouseAlive.AcceptanceTests/MouseUtilities.feature.cs b/MouseAlive.AcceptanceTests/MouseUtilities.feature.cs new file mode 100644 index 0000000..a1151ab --- /dev/null +++ b/MouseAlive.AcceptanceTests/MouseUtilities.feature.cs @@ -0,0 +1,75 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by SpecFlow (http://www.specflow.org/). +// SpecFlow Version:1.6.1.0 +// SpecFlow Generator Version:1.6.0.0 +// Runtime Version:4.0.30319.235 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +#region Designer generated code +namespace MouseAlive.AcceptanceTests +{ + using TechTalk.SpecFlow; + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.6.1.0")] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [NUnit.Framework.TestFixtureAttribute()] + [NUnit.Framework.DescriptionAttribute("Mouse Utilities")] + public partial class MouseUtilitiesFeature + { + + private static TechTalk.SpecFlow.ITestRunner testRunner; + +#line 1 "MouseUtilities.feature" +#line hidden + + [NUnit.Framework.TestFixtureSetUpAttribute()] + public virtual void FeatureSetup() + { + testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Mouse Utilities", "In order to keep the screen saver from activating\r\nAs a remote support agent\r\nI w" + + "ant to have the mouse moved for me automatically", GenerationTargetLanguage.CSharp, ((string[])(null))); + testRunner.OnFeatureStart(featureInfo); + } + + [NUnit.Framework.TestFixtureTearDownAttribute()] + public virtual void FeatureTearDown() + { + testRunner.OnFeatureEnd(); + testRunner = null; + } + + public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo) + { + testRunner.OnScenarioStart(scenarioInfo); + } + + [NUnit.Framework.TearDownAttribute()] + public virtual void ScenarioTearDown() + { + testRunner.OnScenarioEnd(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("Move Mouse")] + public virtual void MoveMouse() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Move Mouse", ((string[])(null))); +#line 6 +this.ScenarioSetup(scenarioInfo); +#line 7 + testRunner.Given("I am working on a machine with MouseAlive"); +#line 8 + testRunner.When("a certain amount of time has elapsed"); +#line 9 + testRunner.Then("the mouse should move automatically"); +#line hidden + testRunner.CollectScenarioErrors(); + } + } +} +#endregion diff --git a/MouseAlive.AcceptanceTests/MouseUtilitiesSteps.cs b/MouseAlive.AcceptanceTests/MouseUtilitiesSteps.cs new file mode 100644 index 0000000..c6c5f24 --- /dev/null +++ b/MouseAlive.AcceptanceTests/MouseUtilitiesSteps.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TechTalk.SpecFlow; +using NUnit.Framework; +using System.Drawing; + +namespace MouseAlive.AcceptanceTests { + [Binding] + public class MouseUtilitiesSteps { + + private Point point; + + [Given("I am working on a machine with MouseAlive")] + public void GivenIAmWorkingOnAMachineWithMouseAlive() { + point = MouseUtilities.GetMousePosition(); + } + + [When("a certain amount of time has elapsed")] + public void WhenIAmAwayFromMyDesk() { + var oldPoint = point; + MouseUtilities.MoveMouse(); + + } + + [Then("the mouse should move automatically")] + public void ThenTheMouseShouldMoveAutomaticallyOverATimeInterval() { + var newPoint = MouseUtilities.GetMousePosition(); + Assert.AreNotEqual(point, newPoint); + } + } +} diff --git a/MouseAlive.sln b/MouseAlive.sln index dc4d16d..8f32219 100644 --- a/MouseAlive.sln +++ b/MouseAlive.sln @@ -5,6 +5,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseAlive", "MouseAlive\Mo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseAlive.Tests", "MouseAlive.Tests\MouseAlive.Tests.csproj", "{49D09C41-50AE-4D6E-AA19-30CA7687AEEC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseAlive.AcceptanceTests", "MouseAlive.AcceptanceTests\MouseAlive.AcceptanceTests.csproj", "{AF3E4F64-5C96-4055-B4A6-3ED747A0F762}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,6 +37,16 @@ Global {49D09C41-50AE-4D6E-AA19-30CA7687AEEC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {49D09C41-50AE-4D6E-AA19-30CA7687AEEC}.Release|Mixed Platforms.Build.0 = Release|Any CPU {49D09C41-50AE-4D6E-AA19-30CA7687AEEC}.Release|x86.ActiveCfg = Release|Any CPU + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Debug|Any CPU.ActiveCfg = Debug|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Debug|x86.ActiveCfg = Debug|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Debug|x86.Build.0 = Debug|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Release|Any CPU.ActiveCfg = Release|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Release|Mixed Platforms.Build.0 = Release|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Release|x86.ActiveCfg = Release|x86 + {AF3E4F64-5C96-4055-B4A6-3ED747A0F762}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE