PromoMetadataTests.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using NUnit.Framework;
  3. namespace UnityEngine.Monetization.Editor.Tests
  4. {
  5. [TestFixture]
  6. public class PromoMetadataTests
  7. {
  8. public struct IsExpiredTestData
  9. {
  10. public DateTime firstImpressionDate;
  11. public TimeSpan offerDuration;
  12. public bool isExpired;
  13. }
  14. private IsExpiredTestData[] isExpiredTestData;
  15. [OneTimeSetUp]
  16. public void SetUp()
  17. {
  18. this.isExpiredTestData = new IsExpiredTestData[]
  19. {
  20. new IsExpiredTestData
  21. {
  22. firstImpressionDate = DateTime.Now.Add(-TimeSpan.FromSeconds(100)),
  23. offerDuration = TimeSpan.FromSeconds(60),
  24. isExpired = true
  25. },
  26. new IsExpiredTestData
  27. {
  28. offerDuration = TimeSpan.FromSeconds(100),
  29. isExpired = false
  30. },
  31. new IsExpiredTestData
  32. {
  33. firstImpressionDate = DateTime.Now.Add(-TimeSpan.FromSeconds(20)),
  34. offerDuration = TimeSpan.FromSeconds(60),
  35. isExpired = false
  36. }
  37. };
  38. }
  39. [Test]
  40. public void TestIsExpired()
  41. {
  42. foreach (var tt in isExpiredTestData)
  43. {
  44. var metadata = new PromoMetadata
  45. {
  46. impressionDate = tt.firstImpressionDate,
  47. offerDuration = tt.offerDuration
  48. };
  49. Assert.That(metadata.isExpired, Is.EqualTo(tt.isExpired));
  50. }
  51. }
  52. [TestCase(100, 60, -40)]
  53. [TestCase(20, 60, 40)]
  54. [TestCase(60, 60, 0)]
  55. public void TestTimeRemaining(int impressionTimeSpan, int offerDuratonTimeSpan, int remainingTime)
  56. {
  57. var metadata = new PromoMetadata
  58. {
  59. impressionDate = DateTime.Now.Add(-TimeSpan.FromSeconds(impressionTimeSpan)),
  60. offerDuration = TimeSpan.FromSeconds(offerDuratonTimeSpan)
  61. };
  62. Assert.That(metadata.timeRemaining, Is.EqualTo(TimeSpan.FromSeconds(remainingTime)).Within(1).Seconds);
  63. }
  64. [TestCase("100.gold.coins", true)]
  65. [TestCase(null, false)]
  66. public void TestIsPremium(string productId, bool isPremium)
  67. {
  68. var metadata = new PromoMetadata
  69. {
  70. premiumProduct =
  71. {
  72. productId = productId
  73. }
  74. };
  75. Assert.That(metadata.isPremium, Is.EqualTo(isPremium));
  76. }
  77. }
  78. }