public async Task NotifyWithoutHandlerTest() { var bus = A.Fake <IServiceBus>(); var user = A.Fake <ClaimsPrincipal>(); var @event = A.Fake <IEvent>(); var service = new DefaultEventService(new IEventHandler[0]); await service.Notify(bus, user, @event); }
public async Task NotifyTest() { var handler = A.Fake <IEventHandler>(); var bus = A.Fake <IServiceBus>(); var user = A.Fake <ClaimsPrincipal>(); var @event = A.Fake <IEvent>(); var service = new DefaultEventService(new IEventHandler[] { handler }); await service.Notify(bus, user, @event); A.CallTo(() => handler.Handle(A <EventHandlerContext> .Ignored, @event)).MustHaveHappened(); }
public async Task PrepareEventWithRemoteAddressTest() { var options = new EventOptions { RaiseErrorEvents = true, RaiseFailureEvents = true, RaiseInformationEvents = true, RaiseSuccessEvents = true }; var remoteIp = "127.0.0.1"; var traceId = Guid.NewGuid().ToString(); var procId = Process.GetCurrentProcess().Id; var subjectId = "123456789"; var fooEvent = new FooEvent("FooEvents", "FooEvent", EventTypes.Information, 1337, "Some foo message") { Foo = "bar" }; var mockHttpContextAccessor = new Mock <IHttpContextAccessor>(); var mockHttpContext = new Mock <HttpContext>(); var mockConnectionInfo = new Mock <ConnectionInfo>(); mockHttpContext.SetupGet(c => c.TraceIdentifier).Returns(traceId); mockConnectionInfo.SetupGet(c => c.RemoteIpAddress).Returns(System.Net.IPAddress.Parse(remoteIp)); mockHttpContextAccessor.SetupGet(c => c.HttpContext).Returns(mockHttpContext.Object); mockHttpContext.SetupGet(c => c.Connection).Returns(mockConnectionInfo.Object); mockHttpContext.SetupGet(c => c.User).Returns(new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim("sub", subjectId) }))); var mockEventSink = new Mock <IEventSink>(); var eventService = new DefaultEventService( options, mockHttpContextAccessor.Object, new DateTimeAccessor(), mockEventSink.Object); await eventService.RaiseAsync(fooEvent); /*eventOut.Should().Equals(eventIn); * eventOut.Context.Should().NotBeNull(); * eventOut.Context.ProcessId.Should().Be(procId); * eventOut.Context.RemoteIpAddress.Should().Be(remoteIp); * eventOut.Context.SubjectId.Should().Be(subjectId);*/ }
public async Task NotifyFailedTest() { var handler = A.Fake <IEventHandler>(); var bus = A.Fake <IServiceBus>(); var user = A.Fake <ClaimsPrincipal>(); var @event = A.Fake <IEvent>(); var service = new DefaultEventService(new IEventHandler[] { handler }); A.CallTo(() => handler.Handle(A <EventHandlerContext> .Ignored, @event)).Throws <InvalidOperationException>(); await Assert.ThrowsAsync <AggregateException>(() => { return(service.Notify(bus, user, @event)); }); }