예제 #1
0
        public void Handle_GivenCorrectNotification_ExpectAddIdleVisitorCalled()
        {
            Mock <IVisitorControl> visitorControl = new Mock <IVisitorControl>();
            VisitorEvent           notification   = new VisitorEvent(
                EventType.Idle,
                Guid.NewGuid(),
                new Dictionary <string, object>()
            {
                { "DateTime", DateTime.Now }
            });

            VisitorNotificationHandler notificationHandler = new VisitorNotificationHandler(visitorControl.Object);

            notificationHandler.Handle(notification, CancellationToken.None);

            visitorControl.Verify(control => control.UpdateVisitorAvailabilityAt(It.IsAny <Guid>(), It.IsAny <DateTime>()));
        }
예제 #2
0
        public void Constructors_ConstructVisitorEvent_ExpectCorrectVisitorEvent()
        {
            Guid         guid          = Guid.NewGuid();
            VisitorEvent visitorEvent1 = new VisitorEvent(EventType.Idle, guid);

            Assert.Equal(guid, visitorEvent1.VisitorGuid);
            Assert.Equal(EventType.Idle, visitorEvent1.Type);

            VisitorEvent visitorEvent2 = new VisitorEvent(EventType.Idle, guid, new Dictionary <string, object>()
            {
                { "payload key", "payload value" }
            });

            Assert.Equal(guid, visitorEvent2.VisitorGuid);
            Assert.Equal(EventType.Idle, visitorEvent2.Type);
            Assert.NotEmpty(visitorEvent2.Payload);
            Assert.True(visitorEvent2.Payload.ContainsKey("payload key"));
            Assert.Equal("payload value", visitorEvent2.Payload.First(kv => kv.Key.Equals("payload key")).Value);
        }