public void Setup()
        {
            // any executable that exists
            var exe = Assembly.GetExecutingAssembly().Location;

            var savedFileExtensionPersisterWithDefault = new Mock<IFileExtensionPersister>();
            savedFileExtensionPersisterWithDefault
                .Setup(x => x.LoadFileExtensions())
                .Returns(new[]
                         {
                             new FileExtension
                             {
                                 FileExts = new[] {"saved"},
                                 Command = exe,
                                 DiffArguments = "saved diff arguments",
                                 MergeArguments = "saved merge arguments",
                             },
                             new FileExtension
                             {
                                 FileExts = null,
                                 Command = exe,
                                 DiffArguments = "default diff arguments",
                                 MergeArguments = "default merge arguments",
                             }
                         });
            _savedFileExtensionPersisterWithDefault = savedFileExtensionPersisterWithDefault.Object;

            var savedFileExtensionPersisterWithoutDefault = new Mock<IFileExtensionPersister>();
            savedFileExtensionPersisterWithoutDefault
                .Setup(x => x.LoadFileExtensions())
                .Returns(new[]
                         {
                             new FileExtension
                             {
                                 FileExts = new[] {"saved"},
                                 Command = exe,
                                 DiffArguments = "saved diff arguments",
                                 MergeArguments = "saved merge arguments",
                             },
                         });
            _savedFileExtensionPersisterWithoutDefault = savedFileExtensionPersisterWithoutDefault.Object;

            var builtInFileExtensionPersister = new Mock<IFileExtensionPersister>();
            builtInFileExtensionPersister
                .Setup(x => x.LoadFileExtensions())
                .Returns(new[]
                         {
                             new FileExtension
                             {
                                 FileExts = new[] {"builtin"},
                                 Command = exe,
                                 DiffArguments = "builtin diff arguments",
                                 MergeArguments = "builtin merge arguments",
                             },
                             new FileExtension
                             {
                                 FileExts = null,
                                 Command = exe,
                                 DiffArguments = "builtin default diff arguments",
                                 MergeArguments = "builtin default merge arguments",
                             }
                         });
            _builtInFileExtensionPersister = builtInFileExtensionPersister.Object;
        }
 public FileExtensionLocator(IFileExtensionPersister fileExtensionPersister, IFileExtensionPersister builtInFileExtensionPersister)
 {
     _fileExtensionPersister = fileExtensionPersister;
     _builtInFileExtensionPersister = builtInFileExtensionPersister;
 }