public void WhenSpoolFolderIsAccessible_Success()
        {
            _spoolFolderAccess.CanAccess().Returns(true);
            var spoolFolderCondition = new CheckSpoolFolderCondition(_spoolFolderAccess, null, new TranslationFactory(), _spoolerProvider);

            var result = spoolFolderCondition.Check();

            Assert.IsTrue(result.IsSuccessful);
        }
        public void RepairDoesNotRegainAccess_FailsWithSpoolFolderInaccessible()
        {
            _spoolFolderAccess.CanAccess().Returns(false);
            var spoolFolderCondition = new CheckSpoolFolderCondition(_spoolFolderAccess, _repairSpoolFolderAssistant, new TranslationFactory(), _spoolerProvider);

            var result = spoolFolderCondition.Check();

            Assert.IsFalse(result.IsSuccessful);
            Assert.AreEqual((int)ExitCode.SpoolFolderInaccessible, result.ExitCode);
        }
        public void RepairWasSuccessful_Success()
        {
            bool isAccessible = false;

            _spoolFolderAccess.CanAccess().Returns(x => isAccessible);

            // After repair was called, the spool folder shall be accessible
            _repairSpoolFolderAssistant
            .When(x => x.TryRepairSpoolPath())
            .Do(x => isAccessible = true);

            var spoolFolderCondition = new CheckSpoolFolderCondition(_spoolFolderAccess, _repairSpoolFolderAssistant, new TranslationFactory(), _spoolerProvider);

            var result = spoolFolderCondition.Check();

            Assert.IsTrue(result.IsSuccessful);
        }