Ejemplo n.º 1
0
        public async Task TestMissingDeviceAppAttributesAsync()
        {
            var analyticsManager = new AnalyticsManager(uniqueId, null, TEST_ENCRYPTION_KEY);
            await analyticsManager.ResetAsync().ConfigureAwait(false);

            var eventBuilder = new InstrumentationEventBuilder(analyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.Name       = eventName;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.StartTime  = curTime;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            try
            {
                eventBuilder.BuildEvent();
                Assert.Fail("Exception should have been thrown for missing mandatory field 'device app attributes'");
            }
            catch (EventBuilderException)
            {
                LoggingService.Log("Exception thrown as expected", LoggingLevel.Information);
            }
            finally
            {
                await analyticsManager.ResetAsync();
            }
        }
Ejemplo n.º 2
0
        public void TestMissingEventTypeInInteraction()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningInteraction;
            eventBuilder.StartTime  = curTime;
            eventBuilder.Name       = eventName;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.Page       = new JObject();
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.BuildEvent();
            Assert.AreEqual("user", eventBuilder.EventType.ToString());
        }
Ejemplo n.º 3
0
        public void TestAutoPopulateEventId()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.Name       = eventName;
            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            var instrumentationEvent = eventBuilder.BuildEvent();
            var eventId = instrumentationEvent.EventId;

            Assert.IsFalse(string.IsNullOrWhiteSpace(eventId), "Event ID should have been auto populated");
        }
Ejemplo n.º 4
0
        public void TestAutoPopulateStartTime()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.Name       = eventName;
            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            var  instrumentationEvent = eventBuilder.BuildEvent();
            long startTime            = instrumentationEvent.StartTime;

            Assert.IsTrue(startTime > 0, "Start time should have been auto populated");
        }
Ejemplo n.º 5
0
        public void TestAutoPopulateSequenceId()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.Name       = eventName;
            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            var instrumentationEvent = eventBuilder.BuildEvent();
            int sequenceId           = instrumentationEvent.SequenceId;

            Assert.IsTrue(sequenceId > 0, "Sequence ID should have been auto populated");
            var globalSequenceId = AnalyticsManager.GetGlobalSequenceId();

            Assert.AreEqual(0, globalSequenceId - sequenceId, "Global sequence ID should have been updated");
        }
Ejemplo n.º 6
0
        public void TestMissingName()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;

            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.StartTime  = curTime;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.SenderId   = TEST_SENDER_ID;
            eventBuilder.EventType  = InstrumentationEvent.EventType.system;
            eventBuilder.ErrorType  = InstrumentationEvent.ErrorType.warning;
            eventBuilder.Page       = new JObject();
            try
            {
                eventBuilder.BuildEvent();
                Assert.Fail("Exception should have been thrown for missing mandatory field 'name'");
            }
            catch (EventBuilderException)
            {
                LoggingService.Log("Exception thrown as expected", LoggingLevel.Information);
            }
        }
Ejemplo n.º 7
0
        public void TestMissingEventTypeInError()
        {
            var eventBuilder = new InstrumentationEventBuilder(AnalyticsManager);
            var curTime      = System.DateTime.Now.Ticks;
            var eventName    = string.Format(TEST_EVENT_NAME, curTime);

            eventBuilder.SchemaType = InstrumentationEvent.SchemaType.LightningError;
            eventBuilder.StartTime  = curTime;
            eventBuilder.Name       = eventName;
            eventBuilder.SessionId  = TEST_SESSION_ID;
            eventBuilder.Page       = new JObject();
            eventBuilder.SenderId   = TEST_SENDER_ID;
            InstrumentationEvent instrumentationEvent = null;

            try
            {
                instrumentationEvent = eventBuilder.BuildEvent();
            }
            catch (EventBuilderException)
            {
                Assert.Fail("Exception should not have been thrown");
            }
            Assert.IsNotNull(instrumentationEvent, "Event should not be null");
        }