diff --git a/src/core/Akka.Tests/Loggers/LoggerSpec.cs b/src/core/Akka.Tests/Loggers/LoggerSpec.cs index 17ba5c31a1b..72681e225a6 100644 --- a/src/core/Akka.Tests/Loggers/LoggerSpec.cs +++ b/src/core/Akka.Tests/Loggers/LoggerSpec.cs @@ -1,10 +1,12 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using Akka.Actor; using Akka.Configuration; using Akka.Event; using Akka.TestKit; +using Akka.Tests.Shared.Internals; using Xunit; using Xunit.Abstractions; using FluentAssertions; @@ -26,25 +28,40 @@ public LoggerSpec(ITestOutputHelper output) : base(Config, output) [Fact] public void TestOutputLogger_WithBadFormattingMustNotThrow() { + var events = new List(); + // Need to wait until TestOutputLogger initializes Thread.Sleep(200); Sys.EventStream.Subscribe(TestActor, typeof(LogEvent)); Sys.Log.Error(new FakeException("BOOM"), Case.t, Case.p); - ExpectMsg().Cause.Should().BeOfType(); - ExpectMsg().Cause.Should().BeOfType(); + events.Add(ExpectMsg()); + events.Add(ExpectMsg()); + + events.All(e => e is Error).Should().BeTrue(); + events.Select(e => e.Cause).Any(c => c is FakeException).Should().BeTrue(); + events.Select(e => e.Cause).Any(c => c is AggregateException).Should().BeTrue(); + events.Clear(); Sys.Log.Warning(Case.t, Case.p); - ExpectMsg(); - ExpectMsg().Cause.Should().BeOfType(); + events.Add(ExpectMsg()); + events.Add(ExpectMsg()); + events.Any(e => e is Warning).Should().BeTrue(); + events.First(e => e is Error).Cause.Should().BeOfType(); + events.Clear(); Sys.Log.Info(Case.t, Case.p); - ExpectMsg(); - ExpectMsg().Cause.Should().BeOfType(); + events.Add(ExpectMsg()); + events.Add(ExpectMsg()); + events.Any(e => e is Info).Should().BeTrue(); + events.First(e => e is Error).Cause.Should().BeOfType(); + events.Clear(); Sys.Log.Debug(Case.t, Case.p); - ExpectMsg(); - ExpectMsg().Cause.Should().BeOfType(); + events.Add(ExpectMsg()); + events.Add(ExpectMsg()); + events.Any(e => e is Debug).Should().BeTrue(); + events.First(e => e is Error).Cause.Should().BeOfType(); } [Fact]