public void IfCanRunCommandWithNoOutputAndEventRunFinishedIsRaised()
 {
     var runSync = new RunAsync();
     var result = 0;
     var waitHandle = new AutoResetEvent(false);
     runSync.RunFinished += () =>
         {
             result = 1;
             waitHandle.Set();
         };
     runSync.Run("write");
     waitHandle.ThrowIfHandleTimesOut(TimeSpan.FromSeconds(5));
     Assert.AreEqual(1, result);
 }
        public void IfCanRunCommandAndReturnOutput()
        {
            var runAsync = new RunAsync();
            var result = "";
            var waitHandle = new AutoResetEvent(false);
            runAsync.OutputChanged += (x) =>
                {
                    result = x;
                    waitHandle.Set();
                };
            runAsync.Run("write test");

            waitHandle.ThrowIfHandleTimesOut(TimeSpan.FromSeconds(5));

            Assert.AreEqual("test\r\n", result);
        }
        public void IfListOfInstalledPackagesCallsRunFinishedWhenHasPackages()
        {
            var libDirHelper = _mocks.Get<IChocolateyLibDirHelper>();
            var waitHandle = new AutoResetEvent(false);
            libDirHelper.Stub(x => x.ReloadFromDir()).Return(new List<Package>() { new Package() });
            IList<Package> result = new List<Package>();
            _service.RunFinshed += packages =>
            {
                result = packages;
                waitHandle.Set();
            };

            _service.ListOfIntalledPackages();

            waitHandle.ThrowIfHandleTimesOut(TimeSpan.FromSeconds(5));

            Assert.AreEqual(1, result.Count);
        }
        public void IfListOfInstalledPackagesCallsRunFailedWhenReloadFromDirThrowsException()
        {
            var libDirHelper = _mocks.Get<IChocolateyLibDirHelper>();
            var waitHandle = new AutoResetEvent(false);
            libDirHelper.Stub(x => x.ReloadFromDir()).Throw(new Exception());
            var result = 0;
            _service.RunFailed += packages =>
            {
                result = 1;
                waitHandle.Set();
            };

            _service.ListOfIntalledPackages();

            waitHandle.ThrowIfHandleTimesOut(TimeSpan.FromSeconds(5));

            Assert.AreEqual(1, result);
        }
 public void IfCanRunWrongCommandWithNoOutputAndEventOutputChangedIsRaised()
 {
     var runSync = new RunAsync();
     var result = "";
     var waitHandle = new AutoResetEvent(false);
     runSync.OutputChanged += (x) =>
     {
         result = x;
         waitHandle.Set();
     };
     runSync.Run("thingdingding");
     waitHandle.ThrowIfHandleTimesOut(TimeSpan.FromSeconds(5));
     Assert.AreEqual("No output", result);
 }