public void FizzEventIdTest() { FizzEvent e1 = BuildEvent("u1", "s1"); FizzEvent e2 = BuildEvent("u1", "s2"); FizzEvent e3 = BuildEvent("u1", "s3"); Assert.IsTrue(e1.Id < e2.Id && e1.Id < e3.Id); }
public void Put(FizzEvent item) { if (item == null) { FizzLogger.W("Empty item put in log"); return; } log.Add(item.Id, item); }
public void RollTo(FizzEvent item) { try { int index = log.IndexOfValue(item); for (int i = index; i >= 0; i--) { log.RemoveAt(i); } } catch (Exception e) { FizzLogger.E("Fizz Event Log RollTo " + e); } }
public void FizzEventCreationTest() { FizzEvent e = BuildEvent("u1", "s1"); Assert.AreEqual(e.Build, "b1"); Assert.AreEqual(e.Custom01, "c1"); Assert.AreEqual(e.Custom02, "c2"); Assert.AreEqual(e.Custom03, "c3"); Assert.AreEqual(e.Fields, null); Assert.AreEqual(e.Platform, "ios"); Assert.AreEqual(e.SessionId, "s1"); Assert.AreEqual(e.Type, FizzEventType.session_started); Assert.AreEqual(e.UserId, "u1"); Assert.AreEqual(e.Version, 1); Assert.IsTrue(e.Time > 0); }
public async Task EventLogTest() { FizzEvent e1 = BuildEvent("u1", "s1"); FizzEvent e2 = BuildEvent("u1", "s2"); FizzEvent e3 = BuildEvent("u1", "s3"); FizzEvent e4 = BuildEvent("u1", "s4"); FizzEvent e5 = BuildEvent("u1", "s5"); FizzInMemoryEventLog log = new FizzInMemoryEventLog(); log.Put(e1); log.Put(e2); log.Put(e3); log.Put(e4); log.Put(e5); TaskCompletionSource <object> checkpoint1 = new TaskCompletionSource <object>(); log.Read(3, events => { Assert.AreEqual(events.Count, 3); Assert.AreEqual(events[0].SessionId, e1.SessionId); Assert.AreEqual(events[1].SessionId, e2.SessionId); Assert.AreEqual(events[2].SessionId, e3.SessionId); checkpoint1.SetResult(null); }); await checkpoint1.Task; log.RollTo(e2); TaskCompletionSource <object> checkpoint2 = new TaskCompletionSource <object>(); log.Read(3, events => { Assert.AreEqual(events.Count, 3); Assert.AreEqual(events[0].SessionId, e3.SessionId); Assert.AreEqual(events[1].SessionId, e4.SessionId); Assert.AreEqual(events[2].SessionId, e5.SessionId); checkpoint2.SetResult(null); }); await checkpoint2.Task; }
private JSONNode ParseEvent(FizzEvent item) { JSONClass json = new JSONClass(); json["user_id"] = item.UserId; json["type"] = Enum.GetName(typeof(FizzEventType), item.Type); //json["ver"].AsInt = EVENT_VER; json.Add("ver", new JSONData(EVENT_VER)); json["session_id"] = item.SessionId; json["time"].AsDouble = item.Time; if (item.Platform != null) { json["platform"] = item.Platform; } if (item.Build != null) { json["build"] = item.Build; } if (item.Custom01 != null) { json["custom_01"] = item.Custom01; } if (item.Custom02 != null) { json["custom_02"] = item.Custom02; } if (item.Custom03 != null) { json["custom_03"] = item.Custom03; } if (item.Fields != null) { foreach (string key in item.Fields.Keys) { json[key] = item.Fields[key]; } } return(json); }
public void RollTo(FizzEvent item) { log.RemoveWhere((FizzEvent obj) => obj.Id <= item.Id); }