/src/Framework/Tests/Workflow/ContentStateTests.cs

https://github.com/lundbeck/n2cms · C# · 192 lines · 120 code · 39 blank · 33 comment · 0 complexity · 89cd4591d829f2f2d1ced560ba809b1e MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Security.Principal;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. using N2.Edit;
  7. using N2.Persistence;
  8. using N2.Tests.Workflow.Items;
  9. using N2.Web.UI.WebControls;
  10. using NUnit.Framework;
  11. using N2.Edit.Versioning;
  12. namespace N2.Tests.Workflow
  13. {
  14. [TestFixture]
  15. public class ContentStateTests : PersistenceAwareBase
  16. {
  17. ContentActivator activator;
  18. IEditManager editManager;
  19. IVersionManager versionManager;
  20. IPersister persister;
  21. Dictionary<string, Control> editors;
  22. IPrincipal admin = CreatePrincipal("admin");
  23. [SetUp]
  24. public override void SetUp()
  25. {
  26. CreateDatabaseSchema();
  27. base.SetUp();
  28. persister = engine.Resolve<IPersister>();
  29. activator = engine.Resolve<ContentActivator>();
  30. editManager = engine.Resolve<IEditManager>();
  31. versionManager = engine.Resolve<IVersionManager>();
  32. editors = new Dictionary<string, Control>();
  33. editors["Title"] = new TextBox { Text = "New title" };
  34. }
  35. // definition manager
  36. [Test]
  37. public void CreateInstance_Generic_SetsItemState_New()
  38. {
  39. var item = activator.CreateInstance<StatefulPage>(null);
  40. Assert.That(item.State, Is.EqualTo(ContentState.New));
  41. }
  42. [Test]
  43. public void CreateInstance_TypeParameter_SetsItemState_New()
  44. {
  45. var item = activator.CreateInstance(typeof(StatefulPage), null);
  46. Assert.That(item.State, Is.EqualTo(ContentState.New));
  47. }
  48. // edit manater
  49. [Test]
  50. [Obsolete]
  51. public void VersionAndSave_SetsItemStateTo_Published()
  52. {
  53. var item = activator.CreateInstance<StatefulPage>(null);
  54. editManager.Save(item, editors, ItemEditorVersioningMode.VersionAndSave, admin);
  55. Assert.That(item.State, Is.EqualTo(ContentState.Published));
  56. }
  57. [Test]
  58. [Obsolete]
  59. public void SaveOnly_SetsItemStateTo_Published()
  60. {
  61. var item = activator.CreateInstance<StatefulPage>(null);
  62. editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  63. Assert.That(item.State, Is.EqualTo(ContentState.Published));
  64. }
  65. [Test]
  66. [Obsolete]
  67. public void SaveOnly_OnVersion_SetsItemStateTo_Draft()
  68. {
  69. var item = activator.CreateInstance<StatefulPage>(null);
  70. persister.Save(item);
  71. var version = versionManager.AddVersion(item);
  72. var result = editManager.Save(version, editors, ItemEditorVersioningMode.SaveOnly, admin);
  73. Assert.That(result.State, Is.EqualTo(ContentState.Draft));
  74. }
  75. [Test]
  76. [Obsolete]
  77. public void SaveVersion_OnPublishedItem_SetsVersionedItemStateTo_Unpublished()
  78. {
  79. var item = activator.CreateInstance<StatefulPage>(null);
  80. editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  81. var version = versionManager.AddVersion(item);
  82. Assert.That(version.State, Is.EqualTo(ContentState.Unpublished));
  83. }
  84. [Test]
  85. [Obsolete]
  86. public void SaveVersion_OnDraft_SetsVersionedItemStateTo_Unpublished()
  87. {
  88. var item = activator.CreateInstance<StatefulPage>(null);
  89. persister.Save(item);
  90. var version = versionManager.AddVersion(item);
  91. Assert.That(version.State, Is.EqualTo(ContentState.Draft));
  92. }
  93. [Test]
  94. [Obsolete]
  95. public void SaveAsMaster_SetsItemState_Published()
  96. {
  97. var item = activator.CreateInstance<StatefulPage>(null);
  98. persister.Save(item);
  99. var version = versionManager.AddVersion(item);
  100. var result = editManager.Save(version, editors, ItemEditorVersioningMode.SaveAsMaster, admin);
  101. Assert.That(result.State, Is.EqualTo(ContentState.Published));
  102. }
  103. [Test]
  104. [Obsolete]
  105. public void VersionOnly_SetsVersionedItemStateTo_Draft()
  106. {
  107. var item = activator.CreateInstance<StatefulPage>(null);
  108. persister.Save(item);
  109. var result = editManager.Save(item, editors, ItemEditorVersioningMode.VersionOnly, admin);
  110. Assert.That(result.State, Is.EqualTo(ContentState.Draft));
  111. }
  112. [Test]
  113. [Obsolete]
  114. public void VersionOnly_DoesntAffect_MasterVersionState()
  115. {
  116. var item = activator.CreateInstance<StatefulPage>(null);
  117. editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  118. var version = editManager.Save(item, editors, ItemEditorVersioningMode.VersionOnly, admin);
  119. Assert.That(item.State, Is.EqualTo(ContentState.Published));
  120. }
  121. //[Test]
  122. //[Obsolete]
  123. //public void VersionOnly_DoesntAffect_MasterVersionIndex()
  124. //{
  125. // var item = activator.CreateInstance<StatefulItem>(null);
  126. // editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  127. // int initialIndex = item.VersionIndex;
  128. // var version = editManager.Save(item, editors, ItemEditorVersioningMode.VersionOnly, admin);
  129. // Assert.That(item.VersionIndex, Is.EqualTo(initialIndex));
  130. //}
  131. //[Test]
  132. //[Obsolete]
  133. //public void VersionOnly_SavedItem_IncrementsVersionIndex()
  134. //{
  135. // var item = activator.CreateInstance<StatefulItem>(null);
  136. // editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  137. // editors["Title"] = new TextBox { Text = "New title 2" };
  138. // var version = editManager.Save(item, editors, ItemEditorVersioningMode.VersionOnly, admin);
  139. // Assert.That(version.VersionIndex, Is.EqualTo(item.VersionIndex + 1));
  140. //}
  141. //[Test]
  142. //[Obsolete]
  143. //public void Publish_DoesntAffect_OldVersionsIndex()
  144. //{
  145. // var item = activator.CreateInstance<StatefulItem>(null);
  146. // editManager.Save(item, editors, ItemEditorVersioningMode.SaveOnly, admin);
  147. // int initialIndex = item.VersionIndex;
  148. // editors["Title"] = new TextBox { Text = "New title 2" };
  149. // var nextVersion = editManager.Save(item, editors, ItemEditorVersioningMode.VersionAndSave, admin);
  150. // Assert.That(nextVersion.VersionIndex, Is.EqualTo(initialIndex + 1));
  151. //}
  152. }
  153. }