public async Task ElapsedUpdatesDuringOperation() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); var first = op.Elapsed; await Task.Delay(10); var second = op.Elapsed; await Task.Delay(10); op.Complete(); var third = op.Elapsed; await Task.Delay(10); var fourth = op.Elapsed; await Task.Delay(10); op.Complete(); var fifth = op.Elapsed; Assert.NotEqual(first, second); Assert.NotEqual(second, third); Assert.Equal(third, fourth); Assert.Equal(fourth, fifth); }
public IEnumerator SimpleTree() { var root = new GameObject("root"); var childA = GameObject.CreatePrimitive(PrimitiveType.Cube); childA.name = "child A"; var childB = GameObject.CreatePrimitive(PrimitiveType.Sphere); childB.name = "child B"; childA.transform.parent = root.transform; childB.transform.parent = root.transform; childB.transform.localPosition = new Vector3(1, 0, 0); var logger = new CollectingLogger(); var export = new GameObjectExport(logger: logger); export.AddScene(new [] { root }, "UnityScene"); var path = Path.Combine(Application.persistentDataPath, "root.gltf"); var task = export.SaveToFileAndDispose(path); yield return(Utils.WaitForTask(task)); var success = task.Result; Assert.IsTrue(success); AssertLogger(logger); #if GLTF_VALIDATOR && UNITY_EDITOR ValidateGltf(path, MessageCode.UNUSED_OBJECT); #endif }
public void should_not_run_selects_and_deletes_to_non_affected_aggregates() { var logger = new CollectingLogger(); using var documentStore = SeparateStore(x => { x.Projections.SelfAggregate <AggregateA>(ProjectionLifecycle.Inline); x.Projections.SelfAggregate <AggregateB>(ProjectionLifecycle.Inline); x.Projections.SelfAggregate <AggregateC>(ProjectionLifecycle.Inline); x.Logger(logger); }); documentStore.Advanced.Clean.CompletelyRemoveAll(); using var session = documentStore.OpenSession(); var id = session.Events.StartStream <AggregateA>(new CreateAEvent { Name = "Test" }).Id; session.SaveChanges(); var commit = logger.LastCommit; commit.Deleted.Any().ShouldBeFalse(); }
public IEnumerator SavedTwice() { var childA = GameObject.CreatePrimitive(PrimitiveType.Cube); childA.name = "child A"; var logger = new CollectingLogger(); var export = new GameObjectExport(logger: logger); export.AddScene(new [] { childA }); var path = Path.Combine(Application.persistentDataPath, "SavedTwice1.gltf"); var task = export.SaveToFileAndDispose(path); yield return(Utils.WaitForTask(task)); var success = task.Result; Assert.IsTrue(success); AssertLogger(logger); #if GLTF_VALIDATOR && UNITY_EDITOR ValidateGltf(path, MessageCode.UNUSED_OBJECT); #endif Assert.Throws <InvalidOperationException>(delegate() { export.AddScene(new [] { childA }); }); path = Path.Combine(Application.persistentDataPath, "SavedTwice2.gltf"); AssertThrowsAsync <InvalidOperationException>(async() => await export.SaveToFileAndDispose(path)); }
public void AbandonmentLevelsDefaultToCustomCompletionLevelIfApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error).Begin("Test"); op.Dispose(); AssertSingleCompletionEvent(logger, LogEventLevel.Error, OutcomeAbandoned); }
public void AbandonOverloadWithEnricherRecordsPropertyAddedViaEnricher() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Abandon(new Enricher("Value", 42)); AssertScalarPropertyOfSingleEvent(logger, "Value", 42); }
public void AbandonRecordsResultsOfOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Abandon("Value", 42); AssertScalarPropertyOfSingleEvent(logger, "Value", 42); }
public void CustomAbandonmentLevelsAreApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error, LogEventLevel.Fatal).Begin("Test"); op.Dispose(); AssertSingleCompletionEvent(logger, LogEventLevel.Fatal, OutcomeAbandoned); }
public void DisposeRecordsCompletionOfTimings() { var logger = new CollectingLogger(); var op = logger.Logger.TimeOperation("Test"); op.Dispose(); AssertSingleCompletionEvent(logger, LogEventLevel.Information, OutcomeCompleted); }
public void CustomCompletionLevelsAreApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error).Time("Test"); op.Dispose(); AssertSingleCompletionEvent(logger, LogEventLevel.Error, OutcomeCompleted); }
public void AbandonRecordsAddedProperty() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.EnrichWith("Value", 42); op.Dispose(); AssertScalarPropertyOfSingleEvent(logger, "Value", 42); }
public void CustomCompletionLevelsAreApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error).Time("Test"); op.Dispose(); Assert.Equal(1, logger.Events.Count); Assert.Equal(LogEventLevel.Error, logger.Events.Single().Level); }
public void DisposeRecordsCompletionOfTimings() { var logger = new CollectingLogger(); var op = logger.Logger.TimeOperation("Test"); op.Dispose(); Assert.Equal(1, logger.Events.Count); Assert.Equal(LogEventLevel.Information, logger.Events.Single().Level); }
public void CustomAbandonmentLevelsAreApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error, LogEventLevel.Fatal).Begin("Test"); op.Dispose(); Assert.Equal(1, logger.Events.Count); Assert.Equal(LogEventLevel.Fatal, logger.Events.Single().Level); }
public static void CollectingLoggerTest() { var r = new CollectingLogger(); r.Error(LogCode.Download, "404", "https://something.com/nowherfound.glb"); Assert.AreEqual(1, r.items.Count); Assert.AreEqual("Download URL https://something.com/nowherfound.glb failed: 404", r.items[0].ToString()); }
public void CompleteRecordsPropertyAddedViaEnricher() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.EnrichWith(new Enricher("Value", 42)); op.Complete(); AssertScalarPropertyOfSingleEvent(logger, "Value", 42); }
public void AbandonmentLevelsDefaultToCustomCompletionLevelIfApplied() { var logger = new CollectingLogger(); var op = logger.Logger.OperationAt(LogEventLevel.Error).Begin("Test"); op.Dispose(); Assert.Equal(1, logger.Events.Count); Assert.Equal(LogEventLevel.Error, logger.Events.Single().Level); }
public void CompleteRecordsResultsOfOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Complete("Value", 42); Assert.Single(logger.Events); Assert.True(logger.Events.Single().Properties.ContainsKey("Value")); }
public void CompleteOverridesAddedProperty() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.EnrichWith("Value", 42); op.Complete("Value", 43); AssertScalarPropertyOfSingleEvent(logger, "Value", 43); }
public void OnceCanceledDisposeDoesNotRecordCompletionOfOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Cancel(); op.Dispose(); Assert.Empty(logger.Events); }
private static void AssertScalarPropertyOfSingleEvent <T>(CollectingLogger logger, string propertyName, T expected) { var ev = Assert.Single(logger.Events); Assert.True(ev.Properties.TryGetValue(propertyName, out var value)); Assert.Equal( expected, Assert.IsType <T>(Assert.IsType <ScalarValue>(value).Value) ); }
public void AbandonRecordsAbandonmentOfBegunOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Abandon(); AssertSingleCompletionEvent(logger, LogEventLevel.Warning, OutcomeAbandoned); op.Dispose(); Assert.Single(logger.Events); }
public void CompleteRecordsCompletionOfOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Complete(); AssertSingleCompletionEvent(logger, LogEventLevel.Information, OutcomeCompleted); op.Dispose(); Assert.Single(logger.Events); }
void AssertLogger(CollectingLogger logger) { logger.LogAll(); if (logger.items != null) { foreach (var item in logger.items) { Assert.AreEqual(LogType.Log, item.type, item.ToString()); } } }
public void OnceCanceledDisposeDoesNotInvokeEnricher() { var enricher = new Enricher(null, null); var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.EnrichWith(enricher); op.Cancel(); op.Dispose(); Assert.False(enricher.WasCalled); }
public void DisposeRecordsAbandonmentOfIncompleteOperations() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Dispose(); Assert.Equal(1, logger.Events.Count); Assert.Equal(LogEventLevel.Warning, logger.Events.Single().Level); op.Dispose(); Assert.Equal(1, logger.Events.Count); }
public async Task TimingWithinOrderOfMagnitude(int delay) { var logger = new CollectingLogger(); var op = logger.Logger.TimeOperation("Test"); await Task.Delay(delay); op.Dispose(); var elapsed = GetElapsedMilliseconds(logger); Assert.InRange(elapsed, delay * 0.5, delay * 5); }
public void LoggerContextIsPreserved() { var logger = new CollectingLogger(); var op = logger.Logger .ForContext <OperationTests>().BeginOperation("Test"); op.Complete(); var sourceContext = ((ScalarValue)logger.Events.Single().Properties["SourceContext"]).Value; Assert.Equal(sourceContext, typeof(OperationTests).FullName); }
public void AbandonOverloadWithEnrichersRecordsPropertiesAddedViaEnrichers() { var logger = new CollectingLogger(); var op = logger.Logger.BeginOperation("Test"); op.Abandon(new ILogEventEnricher[] { new Enricher("Question", "unknown"), new Enricher("Answer", 42) }); AssertScalarPropertyOfSingleEvent(logger, "Question", "unknown"); AssertScalarPropertyOfSingleEvent(logger, "Answer", 42); }
public void DisposedOperationDoesNotCaptureException() { var logger = new CollectingLogger(); Assert.Throws <InvalidOperationException>((Action)(() => { using (logger.Logger.BeginOperation("Test")) { throw new InvalidOperationException(); } }) ); Assert.Null(Assert.Single(logger.Events).Exception); }