Hue Preserving Color Blending
AnalyticsEventTests.cs
1 #pragma warning disable 0612, 0618
2 
3 using System;
4 using System.Collections.Generic;
5 using NUnit.Framework;
6 
8 {
9  [TestFixture, Category("Standard Event SDK")]
10  public partial class AnalyticsEventTests
11  {
12  readonly Dictionary<string, object> m_CustomData = new Dictionary<string, object>();
13  AnalyticsResult m_Result = AnalyticsResult.Ok;
14 
15  [SetUp]
16  public void TestCaseSetUp()
17  {
18  m_Result = AnalyticsResult.Ok;
19 
20  m_CustomData.Clear();
21  m_CustomData.Add("custom_param", "test");
22  }
23 
24  [Test]
25  public void SdkVersion_FormatTest()
26  {
27  int major, minor, patch;
28  var versions = AnalyticsEvent.sdkVersion.Split('.');
29 
30  Assert.AreEqual(3, versions.Length, "Number of integer fields in version format");
31 
32  Assert.IsTrue(int.TryParse(versions[0], out major), "Major version is an integer");
33  Assert.IsTrue(int.TryParse(versions[1], out minor), "Minor version is an integer");
34  Assert.IsTrue(int.TryParse(versions[2], out patch), "Patch version is an integer");
35 
36  Assert.LessOrEqual(0, major, "Major version");
37  Assert.LessOrEqual(0, minor, "Minor version");
38  Assert.LessOrEqual(0, patch, "Patch version");
39  }
40 
41  [Test]
42  public void Custom_EventNameTest(
43  [Values("custom_event", "", null)] string eventName
44  )
45  {
46  if (string.IsNullOrEmpty(eventName))
47  {
48  Assert.Throws<ArgumentException>(() => m_Result = AnalyticsEvent.Custom(eventName));
49  }
50  else
51  {
52  Assert.DoesNotThrow(() => m_Result = AnalyticsEvent.Custom(eventName));
53  EvaluateAnalyticsResult(m_Result);
54  }
55  }
56 
57  [Test]
58  public void Custom_EventDataTest()
59  {
60  var eventName = "custom_event";
61 
62  Assert.DoesNotThrow(() => m_Result = AnalyticsEvent.Custom(eventName, m_CustomData));
63  EvaluateCustomData(m_CustomData);
64  EvaluateAnalyticsResult(m_Result);
65  }
66 
67  [Test]
68  public void Custom_RegisterUnregisterUnnamedTest()
69  {
70  Action<IDictionary<string, object>> myAction =
71  eventData => eventData.Add("my_key", "my_value");
72 
73  AnalyticsEvent.Register(myAction); // Registering for a named AnalyticsEvent
74 
75  var eventName = "custom_event";
76 
77  Assert.DoesNotThrow(() => m_Result = AnalyticsEvent.Custom(eventName, m_CustomData));
78 
79  EvaluateRegisteredCustomData(m_CustomData);
80  EvaluateAnalyticsResult(m_Result);
81 
82  AnalyticsEvent.Unregister(myAction);
83  }
84 
86  public static void EvaluateCustomData(IDictionary<string, object> customData)
87  {
88  Assert.AreEqual(1, customData.Count, "Custom param count");
89  }
90 
92  public static void EvaluateRegisteredCustomData(IDictionary<string, object> customData)
93  {
94  Assert.AreEqual(2, customData.Count, "Custom param count");
95  }
96 
97  public static void EvaluateAnalyticsResult(AnalyticsResult result)
98  {
99  switch (result)
100  {
101  case AnalyticsResult.Ok:
102  break;
103  case AnalyticsResult.InvalidData:
104  Assert.Fail("Event data is invalid.");
105  break;
106  case AnalyticsResult.TooManyItems:
107  Assert.Fail("Event data consists of too many parameters.");
108  break;
109  default:
110  Debug.LogFormat("A result of {0} is passable for the purpose of this test.", result);
111  break;
112  }
113  }
114  }
115 }
static void EvaluateCustomData(IDictionary< string, object > customData)
Normal. Unregistered.
static void EvaluateRegisteredCustomData(IDictionary< string, object > customData)
For Registered case.