private void OnMakeCloneClick(object sender, EventArgs e) { if (string.IsNullOrEmpty(SelectedPath)) { return; } if (!IsEnabledItemSelected()) { //MessageBox.Show(item.ToolTipText, "Problem", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (!Directory.Exists(_parentDirectoryToPutCloneIn)) { MessageBox.Show( string.Format(LocalizationManager.GetString("Messages.MissingDirectoryError", @"Sorry, the calling program told Chorus to place the new project inside {0}, but that directory does not exist."), _parentDirectoryToPutCloneIn), LocalizationManager.GetString("Common.Problem", "Problem"), MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } var target = Path.Combine(_parentDirectoryToPutCloneIn, Path.GetFileName(SelectedPath)); try { UpdateDisplay(State.MakingClone); PathToNewlyClonedFolder = _model.MakeClone(SelectedPath, _parentDirectoryToPutCloneIn, _progress); UpdateDisplay(State.Success); using (SoundPlayer player = new SoundPlayer(Properties.Resources.finishedSound)) { player.PlaySync(); } } catch (Exception error) { using (SoundPlayer player = new SoundPlayer(Properties.Resources.errorSound)) { player.PlaySync(); } _failureMessage = error.Message; UpdateDisplay(State.Error); } }
public void MakeClone_TargetExists_CreatesCloneInAnotherFolder() { using (var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; var extantFolder = f.Combine(RepositorySetup.ProjectName); Directory.CreateDirectory(extantFolder); // Make a subfolder, which will force it to make a new folder, since an empty folder is deleted. var extantSubfolderPath = Path.Combine(extantFolder, "ChildFolder"); Directory.CreateDirectory(extantSubfolderPath); var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.AreEqual(extantFolder + "1", cloneFolder); Assert.IsTrue(Directory.Exists(extantFolder + "1")); } }
public void MakeClone_TargetExists_CreatesCloneInWhenTargetIsEmpty() { using (var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; var extantFolder = f.Combine(RepositorySetup.ProjectName); Directory.CreateDirectory(extantFolder); var cloneFolder = model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.AreEqual(extantFolder, cloneFolder); Assert.IsTrue(Directory.Exists(extantFolder)); Assert.IsFalse(Directory.Exists(extantFolder + "1")); } }
public void MakeClone_NoProblems_MakesClone() { using(var repo = new RepositorySetup("source")) using (var f = new TemporaryFolder("clonetest")) { var model = new CloneFromUsb(); var progress = new ConsoleProgress(); progress.ShowVerbose = true; model.MakeClone(repo.ProjectFolder.Path, f.Path, progress); Assert.IsTrue(Directory.Exists(f.Combine(RepositorySetup.ProjectName, ".hg"))); } }