StartPresenterTests.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using NUnit.Framework;
  2. using Unity.Cloud.Collaborate.Models.Enums;
  3. using Unity.Cloud.Collaborate.Presenters;
  4. using Unity.Cloud.Collaborate.Tests.Models;
  5. namespace Unity.Cloud.Collaborate.Tests.Presenters
  6. {
  7. internal class StartPresenterTests
  8. {
  9. TestStartView m_View;
  10. TestStartModel m_Model;
  11. StartPresenter m_Presenter;
  12. [SetUp]
  13. public void Setup()
  14. {
  15. m_View = new TestStartView();
  16. m_Model = new TestStartModel();;
  17. m_Presenter = new StartPresenter(m_View, m_Model);
  18. }
  19. [TearDown]
  20. public void TearDown()
  21. {
  22. m_Presenter.Stop();
  23. m_View = null;
  24. m_Model = null;
  25. m_Presenter = null;
  26. }
  27. [Test]
  28. public void TestRequestingStart()
  29. {
  30. m_Presenter.Start();
  31. m_Model.ProjectStatus = ProjectStatus.Bound;
  32. m_Presenter.RequestStart();
  33. Assert.AreEqual(1, m_Model.requestTurnOnServiceCount);
  34. m_Model.ProjectStatus = ProjectStatus.Unbound;
  35. m_Presenter.RequestStart();
  36. Assert.AreEqual(1, m_Model.showServicePageCount);
  37. m_Model.ProjectStatus = ProjectStatus.LoggedOut;
  38. m_Presenter.RequestStart();
  39. Assert.AreEqual(1, m_Model.showLoginPageCount);
  40. m_Model.ProjectStatus = ProjectStatus.NoSeat;
  41. m_Presenter.RequestStart();
  42. Assert.AreEqual(1, m_Model.showNoSeatPageCount);
  43. }
  44. [Test]
  45. public void TestUpdatingProjectStatus()
  46. {
  47. m_Presenter.Start();
  48. m_Model.TriggerProjectStatusChanged(ProjectStatus.Bound);
  49. Assert.IsTrue(m_View.buttonVisible);
  50. m_Model.TriggerProjectStatusChanged(ProjectStatus.Unbound);
  51. Assert.IsTrue(m_View.buttonVisible);
  52. m_Model.TriggerProjectStatusChanged(ProjectStatus.LoggedOut);
  53. Assert.IsTrue(m_View.buttonVisible);
  54. m_Model.TriggerProjectStatusChanged(ProjectStatus.NoSeat);
  55. Assert.IsTrue(m_View.buttonVisible);
  56. m_Model.TriggerProjectStatusChanged(ProjectStatus.Loading);
  57. Assert.IsFalse(m_View.buttonVisible);
  58. m_Model.TriggerProjectStatusChanged(ProjectStatus.Offline);
  59. Assert.IsFalse(m_View.buttonVisible);
  60. m_Model.TriggerProjectStatusChanged(ProjectStatus.Maintenance);
  61. Assert.IsFalse(m_View.buttonVisible);
  62. m_Model.TriggerProjectStatusChanged(ProjectStatus.Ready);
  63. Assert.IsFalse(m_View.buttonVisible);
  64. }
  65. [Test]
  66. public void TestStateChange()
  67. {
  68. m_Presenter.Start();
  69. m_Model.ProjectStatus = ProjectStatus.Bound;
  70. m_Model.TriggerStateChanged();
  71. Assert.IsTrue(m_View.buttonVisible);
  72. }
  73. }
  74. }