예제 #1
0
        public void ShouldThrowOnExceptionUsingCustomException()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.ThrowsException <InvalidOperationException>(() => t.OrThrow((Ex, ComponentID, ComponentName, MethodName) => new InvalidOperationException("Failure", Ex)));
            Assert.AreEqual(1, logger.Logs.Count);
        }
예제 #2
0
        public void ShouldThrowOnException()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.ThrowsException <TryException>(() => t.OrThrow("Failure"));
            Assert.AreEqual(1, logger.Logs.Count);
        }
예제 #3
0
        public void ShouldWarnOnExceptionUsingCustomFormat()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.AreEqual(false, t.OrWarn((Ex) => "Formatted Failure"));
            Assert.AreEqual(1, logger.Logs.Count);
            Assert.AreEqual("Warning: Formatted Failure", logger.Logs[0]);
        }
예제 #4
0
        public void ShouldAlertOnException()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.AreEqual(false, t.OrAlert("Failure message"));
            Assert.AreEqual(1, logger.Logs.Count);
            Assert.AreEqual("Error: Failure message: ->Failure", logger.Logs[0]);
        }
예제 #5
0
        public void ShouldThrowOnExceptionUsingCustomGenericException()
        {
            TryFunction <int> t;
            MockedLogger      logger;
            int result;

            logger = new MockedLogger();
            t      = new TryFunction <int>(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.ThrowsException <TestException>(() => result = t.OrThrow <TestException>("Failure"));
            Assert.AreEqual(1, logger.Logs.Count);
        }
예제 #6
0
        public void ShouldSuccess()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => { });
            t.OrThrow("Failure");
            Assert.AreEqual(0, logger.Logs.Count);
            Assert.AreEqual(true, t.OrAlert("Failure"));
            Assert.AreEqual(0, logger.Logs.Count);
        }
예제 #7
0
        public void ShouldWarnOnException()
        {
            TryFunction <int> t;
            MockedLogger      logger;
            int result;

            logger = new MockedLogger();
            t      = new TryFunction <int>(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.AreEqual(false, t.OrWarn(out result, "Failure message"));
            Assert.AreEqual(0, result);
            Assert.AreEqual(1, logger.Logs.Count);
            Assert.AreEqual("Warning: Failure message: ->Failure", logger.Logs[0]);
        }
예제 #8
0
        public void ShouldAlertOnExceptionUsingCustomFormat()
        {
            TryFunction <int> t;
            MockedLogger      logger;
            int result;

            logger = new MockedLogger();
            t      = new TryFunction <int>(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            Assert.AreEqual(false, t.OrAlert(out result, (Ex) => "Formatted Failure"));
            Assert.AreEqual(0, result);
            Assert.AreEqual(1, logger.Logs.Count);
            Assert.AreEqual("Error: Formatted Failure", logger.Logs[0]);
        }
예제 #9
0
        public void ShouldLogErrorWhenAuthenticatorThrows()
        {
            MockedUnfinishedPackageGetter.Setup(ufg => ufg.GetUnfinishedPackages(It.IsAny <string>(), It.IsAny <IEnumerable <string> >())).Throws(new Exception());

            try
            {
                PackageService.GetUnfinished(Guid.NewGuid().ToString(), new[] { "Foo", "Bar" });
            }
            catch (WebFaultException <string> )
            { }

            MockedLogger.Verify(l => l.Error(It.IsAny <Exception>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once(),
                                "An error should have been logged.");
        }
예제 #10
0
        public void ShouldSuccess()
        {
            TryFunction <int> t;
            MockedLogger      logger;
            int result;

            logger = new MockedLogger();
            t      = new TryFunction <int>(logger, 1, "TestUnit", "TestMethod", () => 1234);
            Assert.AreEqual(1234, t.OrThrow("Failure"));
            Assert.AreEqual(0, logger.Logs.Count);
            Assert.AreEqual(true, t.OrAlert(out result, "Failure"));
            Assert.AreEqual(1234, result);
            Assert.AreEqual(0, logger.Logs.Count);
        }
예제 #11
0
        public async Task LogsTrace()
        {
            MockedLogger mockedLogger = new MockedLogger();
            MockedLease  lease        = new MockedLease();
            CosmosDBTriggerHealthMonitor cosmosDBTriggerHealthMonitor = new CosmosDBTriggerHealthMonitor(mockedLogger);

            await cosmosDBTriggerHealthMonitor.InspectAsync(new HealthMonitoringRecord(HealthSeverity.Informational, MonitoredOperation.AcquireLease, lease, null));

            Assert.Single(mockedLogger.Events);

            LogEvent loggedEvent = mockedLogger.Events[0];

            Assert.Equal(LogLevel.Trace, loggedEvent.LogLevel);
            Assert.True(loggedEvent.Message.Contains(lease.ToString()) && loggedEvent.Message.Contains(MonitoredOperation.AcquireLease.ToString()));
        }
        public void TestTaskManager_WhenAddTask_ShouldCallLog()
        {
            //Arrange
            var mockedLogger     = new MockedLogger();
            var mockedIdProvider = new MockedIdProvider();
            var taskManager      = new Tasker(mockedLogger, mockedIdProvider);


            var task = new Task("");

            //Act
            taskManager.Save(task);

            //Assert
            Assert.IsTrue(mockedLogger.IsLogCalled);
        }
예제 #13
0
        public async Task LogsLeaseLost()
        {
            MockedLogger                 mockedLogger = new MockedLogger();
            LeaseLostException           exception    = new LeaseLostException();
            MockedLease                  lease        = new MockedLease();
            CosmosDBTriggerHealthMonitor cosmosDBTriggerHealthMonitor = new CosmosDBTriggerHealthMonitor(mockedLogger);

            await cosmosDBTriggerHealthMonitor.InspectAsync(new HealthMonitoringRecord(HealthSeverity.Error, MonitoredOperation.AcquireLease, lease, exception));

            Assert.Single(mockedLogger.Events);

            LogEvent loggedEvent = mockedLogger.Events[0];

            Assert.Equal(LogLevel.Warning, loggedEvent.LogLevel);
            Assert.Equal(exception, loggedEvent.Exception);
            Assert.True(loggedEvent.Message.Contains(lease.ToString()) && loggedEvent.Message.Contains(MonitoredOperation.AcquireLease.ToString()));
            Assert.True(loggedEvent.Message.Contains("This is expected during scaling and briefly"));
        }
예제 #14
0
        public async Task LogsError()
        {
            MockedLogger mockedLogger = new MockedLogger();
            Exception    exception    = new Exception();
            MockedLease  lease        = new MockedLease();
            CosmosDBTriggerHealthMonitor cosmosDBTriggerHealthMonitor = new CosmosDBTriggerHealthMonitor(mockedLogger);

            await cosmosDBTriggerHealthMonitor.InspectAsync(new HealthMonitoringRecord(HealthSeverity.Error, MonitoredOperation.AcquireLease, lease, exception));

            Assert.Single(mockedLogger.Events);

            LogEvent loggedEvent = mockedLogger.Events[0];

            Assert.Equal(LogLevel.Error, loggedEvent.LogLevel);
            Assert.Equal(exception, loggedEvent.Exception);
            Assert.True(loggedEvent.Message.Contains(lease.ToString()) && loggedEvent.Message.Contains(MonitoredOperation.AcquireLease.ToString()));
            Assert.True(loggedEvent.Message.Contains("encountered an error"));
        }
예제 #15
0
        public void ShouldThrowOnExceptionAndContainsValidInformation()
        {
            TryAction    t;
            MockedLogger logger;

            logger = new MockedLogger();
            t      = new TryAction(logger, 1, "TestUnit", "TestMethod", () => throw new InvalidCastException("Failure"));
            try
            {
                t.OrThrow("Failure");
                Assert.Fail();
            }
            catch (TryException ex)
            {
                Assert.IsNotNull(ex.InnerException);
                Assert.IsInstanceOfType(ex.InnerException, typeof(InvalidCastException));
                Assert.AreEqual(1, ex.ComponentID);
                Assert.AreEqual("TestUnit", ex.ComponentName);
                Assert.AreEqual("TestMethod", ex.MethodName);
            }
            Assert.AreEqual(1, logger.Logs.Count);
        }