Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using System;
  2. using System.Collections.Generic;
  3. using NUnit.Framework;
  4. namespace UnityEngine.Advertisements.Tests
  5. {
  6. [TestFixture("test")]
  7. [TestFixture("gamer")]
  8. [TestFixture("")]
  9. class MetaDataTests
  10. {
  11. private string m_Category;
  12. private MetaData m_Metadata;
  13. public MetaDataTests(string category)
  14. {
  15. m_Category = category;
  16. }
  17. [SetUp]
  18. public void SetUp()
  19. {
  20. m_Metadata = new MetaData(m_Category);
  21. }
  22. [Test]
  23. public void InitialState()
  24. {
  25. Assert.That(m_Metadata.category, Is.EqualTo(m_Category));
  26. Assert.That(m_Metadata.Values(), Is.Not.Null);
  27. Assert.That(m_Metadata.Values(), Is.Empty);
  28. }
  29. [Test]
  30. public void ToJSON_Empty()
  31. {
  32. Assert.That(m_Metadata.ToJSON(), Is.EqualTo("{}"));
  33. }
  34. [Test]
  35. public void ToJSON()
  36. {
  37. m_Metadata.Set("int", 25);
  38. m_Metadata.Set("bool", false);
  39. m_Metadata.Set("double", 1.34);
  40. m_Metadata.Set("string", "test");
  41. Assert.That(m_Metadata.ToJSON(), Is.EqualTo(@"{""int"":25,""bool"":false,""double"":1.34,""string"":""test""}"));
  42. }
  43. [TestCase("test", "value")]
  44. [TestCase("key", null)]
  45. [TestCase("bla", true)]
  46. [TestCase("not", false)]
  47. [TestCase("id", 10)]
  48. [TestCase("height", 3.14)]
  49. [TestCase("enum", ShowResult.Finished)]
  50. public void SetAndGet(string key, object value)
  51. {
  52. Assert.DoesNotThrow(() => m_Metadata.Set(key, value));
  53. object currentValue = null;
  54. Assert.DoesNotThrow(() => currentValue = m_Metadata.Get(key));
  55. Assert.That(currentValue, Is.SameAs(value));
  56. }
  57. [TestCase("")]
  58. [TestCase("key")]
  59. public void Get_ThrowKeyNotFound(string key)
  60. {
  61. Assert.Throws<KeyNotFoundException>(() => m_Metadata.Get(key));
  62. }
  63. [TestCase(null)]
  64. public void Get_ArgumentNullException(string key)
  65. {
  66. Assert.Throws<ArgumentNullException>(() => m_Metadata.Get(key));
  67. }
  68. [TestCase(null, "value")]
  69. public void Set_ArgumentNullException(string key, object value)
  70. {
  71. Assert.Throws<ArgumentNullException>(() => m_Metadata.Set(key, value));
  72. }
  73. [Test]
  74. public void Set_SameKey_Override()
  75. {
  76. m_Metadata.Set("key", "value");
  77. Assert.DoesNotThrow(() => m_Metadata.Set("key", "test"));
  78. Assert.That(m_Metadata.Get("key"), Is.EqualTo("test"));
  79. }
  80. [Test]
  81. public void ComplexObject()
  82. {
  83. m_Metadata.Set("version", "1.0");
  84. m_Metadata.Set("key", new TestJsonObject { value = 65 });
  85. Assert.That(m_Metadata.ToJSON(), Is.EqualTo(@"{""version"":""1.0"",""key"":""UnityEngine.Advertisements.Tests.MetaDataTests+TestJsonObject""}"));
  86. }
  87. class TestJsonObject
  88. {
  89. public long value;
  90. }
  91. }
  92. }