MainPresenterTests.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using NUnit.Framework;
  4. using Unity.Cloud.Collaborate.Models.Structures;
  5. using Unity.Cloud.Collaborate.Presenters;
  6. using Unity.Cloud.Collaborate.Tests.Models;
  7. namespace Unity.Cloud.Collaborate.Tests.Presenters
  8. {
  9. public class MainPresenterTests
  10. {
  11. TestMainView m_View;
  12. TestMainModel m_MainModel;
  13. MainPresenter m_Presenter;
  14. [SetUp]
  15. public void Setup()
  16. {
  17. m_View = new TestMainView();
  18. m_MainModel = new TestMainModel();
  19. m_Presenter = new MainPresenter(m_View, m_MainModel);
  20. }
  21. [TearDown]
  22. public void TearDown()
  23. {
  24. m_Presenter.Stop();
  25. m_View = null;
  26. m_MainModel = null;
  27. m_Presenter = null;
  28. }
  29. [Test]
  30. public void TestBackNavigation()
  31. {
  32. m_Presenter.Start();
  33. var called = false;
  34. m_MainModel.backNavigation = ("test", "test-text", () => called = true);
  35. m_Presenter.NavigateBack();
  36. Assert.IsTrue(called);
  37. Assert.IsNull(m_MainModel.backNavigation);
  38. }
  39. [Test]
  40. public void TestBackNavigationWithNull()
  41. {
  42. m_Presenter.Start();
  43. m_MainModel.backNavigation = null;
  44. m_Presenter.NavigateBack();
  45. Assert.IsNull(m_MainModel.backNavigation);
  46. }
  47. [Test]
  48. public void TestAssigningPresenters()
  49. {
  50. m_Presenter.Start();
  51. var changesView = new TestChangesView();
  52. m_Presenter.AssignChangesPresenter(changesView);
  53. Assert.IsNotNull(changesView.Presenter);
  54. var historyView = new TestHistoryView();
  55. m_Presenter.AssignHistoryPresenter(historyView);
  56. Assert.IsNotNull(historyView.Presenter);
  57. }
  58. [Test]
  59. public void TestCancellingJob()
  60. {
  61. m_Presenter.Start();
  62. m_Presenter.RequestCancelJob();
  63. Assert.AreEqual(1, m_MainModel.requestCancelJobCount);
  64. }
  65. [Test]
  66. public void TestSettingTabIndex()
  67. {
  68. m_Presenter.Start();
  69. const int newVal = 5;
  70. m_Presenter.UpdateTabIndex(newVal);
  71. Assert.AreEqual(newVal, m_MainModel.CurrentTabIndex);
  72. }
  73. [Test]
  74. public void TestStartingWithJobInProgress()
  75. {
  76. m_MainModel.ProgressInfo = new ProgressInfo("test", "test", 50, 20);
  77. m_Presenter.Start();
  78. Assert.IsTrue(m_View.inProgress);
  79. Assert.IsNotNull(m_View.progress);
  80. }
  81. [Test]
  82. public void TestStartingWithError()
  83. {
  84. const string message = "test message";
  85. m_MainModel.ErrorInfo = new ErrorInfo(20, 1, (int)ErrorInfoBehavior.Alert, message, "test", "20");
  86. m_Presenter.Start();
  87. Assert.AreEqual(1, m_View.alerts.Count);
  88. Assert.AreEqual(message, m_View.alerts.First().Value.message);
  89. }
  90. [Test]
  91. public void TestReceivingStateChange()
  92. {
  93. const string message = "test message";
  94. const int tabIndex = 67;
  95. m_Presenter.Start();
  96. m_MainModel.backNavigation = ("id", message, () => { });
  97. m_MainModel.CurrentTabIndex = tabIndex;
  98. m_MainModel.TriggerStateChanged();
  99. Assert.AreEqual(message, m_View.backNavigation);
  100. Assert.AreEqual(tabIndex, m_View.tabIndex);
  101. }
  102. }
  103. }