public void ImportExportTest()
        {
            var project = CreateTestProject();
            var context = new ProfileOptionsWindowContext(project, null, null);

            var tmpFile = Path.GetTempFileName();

            context.ExportProfiles(tmpFile);

            context.SelectedProfile = GetDirtyProfile(context, "kana");
            context.RemoveSelectedProfile();
            context.SelectedProfile = GetDirtyProfile(context, "asa");
            context.RemoveSelectedProfile();
            Assert.Empty(context.ProfileNames);

            context.ImportProfiles(tmpFile);
            File.Delete(tmpFile);

            Assert.Collection(context.ProfileNames, fst => Assert.Equal("kana", fst), snd => Assert.Equal("asa", snd));
        }
        public void ImportNameConflictTest()
        {
            var project      = CreateTestProject();
            var nameResolver = new Mock <ProfileOptionsWindowContext.AskProfileNameDelegate>(MockBehavior.Strict);
            var context      = new ProfileOptionsWindowContext(project, null, nameResolver.Object);

            var tmpFile = Path.GetTempFileName();

            context.ExportProfiles(tmpFile);

            context.SelectedProfile = GetDirtyProfile(context, "kana");
            context.RemoveSelectedProfile();
            Assert.Single(context.ProfileNames, "asa");

            nameResolver.Setup(n => n("Import", "Profile asa already exists. Enter a new name or leave it as is to overwrite the profile:", It.IsAny <IEnumerable <string> >(), "asa"))
            .Returns("mizu").Verifiable();
            context.ImportProfiles(tmpFile);
            File.Delete(tmpFile);

            nameResolver.Verify();
            Assert.Collection(context.ProfileNames, fst => Assert.Equal("asa", fst), snd => Assert.Equal("kana", snd), trd => Assert.Equal("mizu", trd));
        }