Example #1
0
        public void Run()
        {
            var assertFailed = false;

            try
            {
                Env.Config = new Config();
                Env.Clear();
                Env.RunningUnitTests = true;
                Env.Notifier         = new TestNotifier();
                Env.App = new App();
                Env.RandomNumberGenerator = new Mock <RandomNumberGenerator>().Object;
                Env.CommandCollection     = new CommandCollection();
                Env.Cipher = new Mock <ICipher>().Object;
                Env.StateHandlerFactory = new TestStateHandlerFactory();
                Env.Settings            = new Settings();
                Env.Parser             = new Parser();
                Env.ModeHook           = new ModeHook();
                Env.ForegroundListener = new TestForegroundListener();
                Env.FlagManager        = FlagManager.GetFlagManagerAsync().Result;
                Env.Scheduler          = Scheduler.GetSchedulerAsync().Result;
                Env.ProcessManager     = new ProcessManager();
                Env.Injector           = new TestInjector(_outputHandler);
                Env.PasswordMatrix     = new PasswordMatrix(InputMaster.Properties.Resources.PasswordMatrix6x5);
                Env.AccountManager     = new Mock <AccountManager>().Object;
                new TestBrain(_outputHandler).Run();
            }
            catch (Exception ex) when(Helper.HasAssertFailed(ex))
            {
                assertFailed = true;
                throw;
            }
            catch (Exception ex) when(!Helper.IsFatalException(ex))
            {
                Env.Notifier.WriteError(ex);
            }
            finally
            {
                var errorLog = ((TestNotifier)Env.Notifier).GetLog();
                if (!assertFailed && errorLog.Length > 0)
                {
                    Assert.Fail("Unexpected error(s): " + errorLog);
                }
            }
        }