public void WhenParametersValid_ThenCreateProcessInstance()
        {
            const string ExecutablePath = "pathto.exe";
            const string PrinterName    = "printer";
            const string FilePath       = "file.path";
            var          options        = new PrintingOptions(PrinterName, FilePath);
            var          factory        = new SystemProcessFactory();

            var process = (Process)factory.Create(ExecutablePath, options);

            Assert.AreEqual(
                process.StartInfo.WindowStyle,
                ProcessWindowStyle.Hidden);
            Assert.AreEqual(
                process.StartInfo.UseShellExecute,
                false);
            Assert.AreEqual(
                process.StartInfo.CreateNoWindow,
                true);
            Assert.AreEqual(
                process.StartInfo.FileName,
                ExecutablePath);
            Assert.AreEqual(
                process.StartInfo.Arguments,
                $"\"{FilePath}\" \"{PrinterName}\"");
        }
        public void Invalidate()
        {
            var fileSystem          = new FileSystem();
            var store               = new FileStore <UserSettings>(fileSystem);
            var settings            = store.Load();
            var readerWriterFactory = new JournalReaderWriterFactory(fileSystem, settings.DefaultJournalRoot, 120);
            var markDownFiles       = new MarkdownFiles(fileSystem, settings.DefaultJournalRoot);
            var systemProcess       = SystemProcessFactory.Create();
            var journal             = Journal.Open(readerWriterFactory, markDownFiles, systemProcess);
            var uniqueTags          = journal.GetUniqueTags();

            MemoryCache.Default.Set(nameof(JournalTagCache), uniqueTags, _policy);
            _tags = uniqueTags;
        }