PageRenderTime 24ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/Mercurial.Net.Tests/SummaryTests.cs

#
C# | 255 lines | 200 code | 55 blank | 0 comment | 0 complexity | 278221f28c18278bedcbc6ab6b5115c0 MD5 | raw file
Possible License(s): BSD-3-Clause, GPL-2.0
  1. using System;
  2. using System.IO;
  3. using NUnit.Framework;
  4. namespace Mercurial.Tests
  5. {
  6. [TestFixture]
  7. public class SummaryTests : MergeResolveTests
  8. {
  9. [Test]
  10. [Category("Integration")]
  11. public void Summary_NoRepository_ThrowsMercurialExecutionException()
  12. {
  13. Assert.Throws<MercurialExecutionException>(() => Repo.Summary());
  14. }
  15. [Test]
  16. [Category("Integration")]
  17. public void Summary_InitializedRepo_HasNoNewChangesets()
  18. {
  19. Repo.Init();
  20. RepositorySummary summary = Repo.Summary();
  21. Assert.That(summary.NumberOfNewChangesets, Is.EqualTo(0));
  22. }
  23. [Test]
  24. [Category("Integration")]
  25. public void Summary_InitializedRepo_ContainsRawOutput()
  26. {
  27. Repo.Init();
  28. RepositorySummary summary = Repo.Summary();
  29. Assert.That(summary.RawOutput, Is.StringContaining("(clean)"));
  30. }
  31. [Test]
  32. [Category("Integration")]
  33. public void Summary_RepoAtHeadMinusOne_HasOneNewChangeset()
  34. {
  35. CreateRepoWithTwoChangesets();
  36. Repo.Update(0);
  37. RepositorySummary summary = Repo.Summary();
  38. Assert.That(summary.NumberOfNewChangesets, Is.EqualTo(1));
  39. }
  40. [Test]
  41. [Category("Integration")]
  42. public void Summary_RepoAtHeadMinusOne_UpdateIsPossible()
  43. {
  44. CreateRepoWithTwoChangesets();
  45. Repo.Update(0);
  46. RepositorySummary summary = Repo.Summary();
  47. Assert.That(summary.UpdatePossible, Is.True);
  48. }
  49. [Test]
  50. [Category("Integration")]
  51. public void Summary_InitializedRepo_ReportsDefaultBranch()
  52. {
  53. Repo.Init();
  54. RepositorySummary summary = Repo.Summary();
  55. Assert.That(summary.Branch, Is.EqualTo("default"));
  56. }
  57. [Test]
  58. [Category("Integration")]
  59. public void Summary_NewButUncommittedBranchChange_ReturnsNewBranchName()
  60. {
  61. Repo.Init();
  62. Repo.Branch("newbranch");
  63. RepositorySummary summary = Repo.Summary();
  64. Assert.That(summary.Branch, Is.EqualTo("newbranch"));
  65. }
  66. [Test]
  67. [Category("Integration")]
  68. public void Summary_InitializedRepo_ReportsNullParent()
  69. {
  70. Repo.Init();
  71. RepositorySummary summary = Repo.Summary();
  72. CollectionAssert.AreEqual(
  73. new[]
  74. {
  75. -1,
  76. }, summary.ParentRevisionNumbers);
  77. }
  78. [Test]
  79. [Category("Integration")]
  80. public void Summary_RepoAtChangesetZero_ReportsParentIsZero()
  81. {
  82. CreateRepoWithTwoChangesets();
  83. Repo.Update(0);
  84. RepositorySummary summary = Repo.Summary();
  85. CollectionAssert.AreEqual(
  86. new[]
  87. {
  88. 0,
  89. }, summary.ParentRevisionNumbers);
  90. }
  91. [Test]
  92. [Category("Integration")]
  93. public void Summary_InitializedRepo_ReportsNoModifiedFiles()
  94. {
  95. Repo.Init();
  96. RepositorySummary summary = Repo.Summary();
  97. Assert.That(summary.NumberOfModifiedFiles, Is.EqualTo(0));
  98. }
  99. [Test]
  100. [Category("Integration")]
  101. public void Summary_NewFile_ReportsUnknownFile()
  102. {
  103. Repo.Init();
  104. File.WriteAllText(Path.Combine(Repo.Path, "dummy.txt"), "dummy");
  105. RepositorySummary summary = Repo.Summary();
  106. Assert.That(summary.NumberOfUnknownFiles, Is.EqualTo(1));
  107. }
  108. [Test]
  109. [Category("Integration")]
  110. public void Summary_ChangeToTrackedFile_ReportsModifiedFile()
  111. {
  112. Repo.Init();
  113. WriteTextFileAndCommit(Repo, "dummy.txt", "123", "123", true);
  114. File.WriteAllText(Path.Combine(Repo.Path, "dummy.txt"), "dummy");
  115. RepositorySummary summary = Repo.Summary();
  116. Assert.That(summary.NumberOfModifiedFiles, Is.EqualTo(1));
  117. }
  118. [Test]
  119. [Category("Integration")]
  120. public void Summary_InitializedRepo_ReportsNoUnknownFiles()
  121. {
  122. Repo.Init();
  123. RepositorySummary summary = Repo.Summary();
  124. Assert.That(summary.NumberOfUnknownFiles, Is.EqualTo(0));
  125. }
  126. [Test]
  127. [Category("Integration")]
  128. public void Summary_InitializedRepo_ReportsNoUnresolvedFiles()
  129. {
  130. Repo.Init();
  131. RepositorySummary summary = Repo.Summary();
  132. Assert.That(summary.NumberOfUnresolvedFiles, Is.EqualTo(0));
  133. }
  134. [Test]
  135. [Category("Integration")]
  136. public void Summary_InitializedRepo_ReportsNotInMerge()
  137. {
  138. Repo.Init();
  139. RepositorySummary summary = Repo.Summary();
  140. Assert.That(summary.IsInMerge, Is.False);
  141. }
  142. [Test]
  143. [Category("Integration")]
  144. public void Summary_MergeWithConflicts_ReportsConflicts()
  145. {
  146. CreateRepositoryWithMergeConflicts();
  147. try
  148. {
  149. Repo.Merge(new MergeCommand()
  150. .WithMergeTool(MergeTools.InternalMerge));
  151. }
  152. catch (NotSupportedException)
  153. {
  154. Assert.Inconclusive("Merge tool not supported in this version");
  155. }
  156. RepositorySummary summary = Repo.Summary();
  157. Assert.That(summary.NumberOfUnresolvedFiles, Is.EqualTo(1));
  158. }
  159. [Test]
  160. [Category("Integration")]
  161. public void Summary_Merge_ReportsInMerge()
  162. {
  163. CreateRepositoryWithMergeConflicts();
  164. try
  165. {
  166. Repo.Merge(new MergeCommand()
  167. .WithMergeTool(MergeTools.InternalMerge));
  168. }
  169. catch (NotSupportedException)
  170. {
  171. Assert.Inconclusive("Merge tool not supported in this version");
  172. }
  173. RepositorySummary summary = Repo.Summary();
  174. Assert.That(summary.IsInMerge, Is.True);
  175. }
  176. [Test]
  177. [Category("Integration")]
  178. public void Summary_Merge_ReportsCorrectParents()
  179. {
  180. CreateRepositoryWithMergeConflicts();
  181. try
  182. {
  183. Repo.Merge(new MergeCommand()
  184. .WithMergeTool(MergeTools.InternalMerge));
  185. }
  186. catch (NotSupportedException)
  187. {
  188. Assert.Inconclusive("Merge tool not supported in this version");
  189. }
  190. RepositorySummary summary = Repo.Summary();
  191. CollectionAssert.AreEqual(new[] { 2, 1 }, summary.ParentRevisionNumbers);
  192. }
  193. private void CreateRepoWithTwoChangesets()
  194. {
  195. Repo.Init();
  196. WriteTextFileAndCommit(Repo, "dummy.txt", "1", "1", true);
  197. WriteTextFileAndCommit(Repo, "dummy.txt", "2", "2", false);
  198. }
  199. }
  200. }