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(); } }
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()); }
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"); }
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"); }
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"); }
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); } }
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"); }