Beispiel #1
0
        private NimatorResult RunUnsafe()
        {
            var nimatorResult = new NimatorResult(AmbientTimeProvider.GetNow());

            foreach (var layer in this.layers)
            {
                var layerResult = layer.Run();

                if (layerResult == null)
                {
                    throw new InvalidOperationException("Layer " + layer.Name + " returned no result. Cannot continue because we now cannot determine error level of that layer.");
                }

                nimatorResult.LayerResults.Add(layerResult);

                if (layerResult.Level >= StopProcessingAtThreshold)
                {
                    break;
                }
            }

            nimatorResult.Finished = AmbientTimeProvider.GetNow();

            return(nimatorResult);
        }
        public void CheckLayers_WhenAmbientTimeProvderCrashes_WillReturnCriticalResult()
        {
            AmbientTimeProvider.SetNewTimeProvider(() => { throw new Exception("Something truly terrible happened..."); });
            var nimator = new NimatorEngine(new ILayer[0]);

            var result = nimator.RunSafe();

            Assert.That(result.Level, Is.EqualTo(NotificationLevel.Critical));
            Assert.That(result.RenderPlainText(NotificationLevel.Error), Does.Contain("truly terrible"));
        }
        public void SetUp()
        {
            var now = new DateTime(2016, 8, 16, 13, 0, 0);

            AmbientTimeProvider.SetNewTimeProvider(() =>
            {
                now = now.AddMilliseconds(15); // There's 15 ms between each call to the time provider.
                return(now);
            });
        }
        public void CheckLayers_WhenCalled_SetsStartAndEndFromAmbientTimeProvider()
        {
            var now = new DateTime(2016, 8, 16, 13, 0, 0);

            AmbientTimeProvider.SetNewTimeProvider(() =>
            {
                now = now.AddSeconds(15);
                return(now);
            });

            var layer1  = new Mock <ILayer>().WithResult(NotificationLevel.Okay);
            var layer2  = new Mock <ILayer>().WithResult(NotificationLevel.Okay);
            var nimator = new NimatorEngine(new[] { layer1.Object, layer2.Object });

            var result = nimator.RunSafe();

            Assert.That(result.Started, Is.EqualTo(new DateTime(2016, 8, 16, 13, 0, 15)));
            Assert.That(result.Finished, Is.GreaterThan(result.Started));
        }
        public void GetNow_ForDefaultInstance_ReturnsNonDefaultTimes()
        {
            var result = AmbientTimeProvider.GetNow();

            Assert.That((DateTime.Now - result).Seconds, Is.LessThan(5), "Expected the ambient time provider to give a result just around Now.");
        }