Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AddressXception/25f39872e9ae95556e61bbee417105d2 to your computer and use it in GitHub Desktop.
Save AddressXception/25f39872e9ae95556e61bbee417105d2 to your computer and use it in GitHub Desktop.
namespace TipCalc.UITest.Windows
{
[TestClass]
public abstract class WindowsFeatureBase : FeatureBase
{
protected static string AppId;
protected static string Device;
protected static bool ResetDevice;
/// <summary>
/// static constructor acts as [ClassInitialize]
/// </summary>
static WindowsFeatureBase()
{
Device = Local.Machine;
AppId = Constants.WIN_APPID;
ResetDevice = true;
}
protected override void CreateApp(bool reset = true)
{
IApp value;
if (FeatureContext.Current.TryGetValue(ScreenNames.App, out value))
{
Console.WriteLine(
"The IApp context was not properly cleared " +
"or the FeatureContext was not disposed. " +
"Removing IApp from current Context");
value = null;
FeatureContext.Current.Remove(ScreenNames.App);
}
App = AppInitializer
.StartApp(AppId, Device, ResetDevice);
FeatureContext.Current.Add(ScreenNames.App, App);
}
protected override void RegisterScreens()
{
try
{
FeatureContext.Current.Get<ITipCalcScreen>(ScreenNames.TipCalc);
return;
}
catch (KeyNotFoundException)
{
//Keys don't exist so continue
}
FeatureContext.Current.Add(ScreenNames.TipCalc, new TipCalcScreen());
}
[TestInitialize]
public void BeforeEachTest()
{
Debug.WriteLine("WindowsFeatureBase BeforeEachTest() Called");
RegisterScreens();
CreateApp();
}
[TestCleanup]
public void AfterEachTest()
{
Debug.WriteLine("WindowsFeatureBase AfterEachTest() Called");
AppInitializer.ShutDown(Device);
}
[ClassCleanup]
public void TearDown()
{
Debug.WriteLine("WindowsFeatureBase TearDown() Called");
AppInitializer.ShutDown(Device);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment