Example #1
0
        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);
     }
 }
Example #4
0
        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);
        }
Example #5
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);
        }
Example #7
0
 public void RollTo(FizzEvent item)
 {
     log.RemoveWhere((FizzEvent obj) => obj.Id <= item.Id);
 }