PageRenderTime 41ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/CryMono/CryBrary.Tests/Async/AwaiterTests.cs

https://gitlab.com/RogerCapiche/315GR
C# | 72 lines | 51 code | 12 blank | 9 comment | 0 complexity | 4e8687520fd82757b3488ed450ea6ca9 MD5 | raw file
Possible License(s): BSD-3-Clause, CC-BY-SA-3.0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using CryEngine;
  7. using CryEngine.Async;
  8. using CryEngine.Async.Jobs;
  9. using Moq;
  10. using NUnit.Framework;
  11. namespace CryBrary.Tests.Async
  12. {
  13. public class AwaiterTests
  14. {
  15. public AwaiterTests()
  16. {
  17. Awaiter.Instance.Jobs.Clear();
  18. }
  19. [Test]
  20. public void OnUpdate_FrameDelayJob_ExpiredJobRemovedCorrectly()
  21. {
  22. // Arrange
  23. var task = Delay.FrameDelay(1);
  24. // Act
  25. Awaiter.Instance.OnUpdate(1);
  26. // Assert
  27. Assert.AreEqual(0,Awaiter.Instance.Jobs.Count);
  28. }
  29. [Test]
  30. public void OnUpdate_FrameDelayJob_DoNotRemoveJobsTooEarly()
  31. {
  32. // Arrange
  33. var task = Delay.FrameDelay(5);
  34. var task2 = Delay.FrameDelay(20);
  35. var task3 = Delay.FrameDelay(10);
  36. var task4 = Delay.FrameDelay(3);
  37. var task5 = Delay.FrameDelay(4);
  38. // Act
  39. Awaiter.Instance.OnUpdate(1);
  40. Awaiter.Instance.OnUpdate(1);
  41. Awaiter.Instance.OnUpdate(1);
  42. Awaiter.Instance.OnUpdate(1);
  43. // Assert
  44. Assert.AreEqual(3, Awaiter.Instance.Jobs.Count);
  45. }
  46. [Test]
  47. public void OnUpdate_MockJob_IsUpdated()
  48. {
  49. // Arrange
  50. bool updateCalled = false;
  51. Mock<IAsyncJob> job = new Mock<IAsyncJob>();
  52. job.Setup(j => j.Update(It.IsAny<float>())).Callback(() => updateCalled = true).Returns(true);
  53. // Act
  54. Awaiter.Instance.Jobs.Add(job.Object);
  55. Awaiter.Instance.OnUpdate(1);
  56. // Assert
  57. Assert.True(updateCalled);
  58. }
  59. }
  60. }