public void save_async_ignores_any_null_tasks_returned_by_saved_callbacks()
        {
            var logger        = new LoggerMock(MockBehavior.Loose);
            var loggerService = new LoggerServiceMock(MockBehavior.Loose);

            loggerService
            .When(x => x.GetLogger(typeof(StateService)))
            .Return(logger);

            var sut = new StateServiceBuilder()
                      .WithLoggerService(loggerService)
                      .Build();

            var firstExecuted  = false;
            var secondExecuted = false;

            sut
            .RegisterSaveCallback(
                _ =>
            {
                firstExecuted = true;
                return(Observable.Return(Unit.Default));
            });
            sut.RegisterSaveCallback(_ => null);
            sut
            .RegisterSaveCallback(
                _ =>
            {
                secondExecuted = true;
                return(Observable.Return(Unit.Default));
            });

            sut.SaveAsync();

            Assert.True(firstExecuted);
            Assert.True(secondExecuted);

            loggerService
            .Verify(x => x.GetLogger(typeof(StateService)))
            .WasCalledExactlyOnce();

            logger
            .Verify(x => x.Error(It.IsAny <string>()))
            .WasNotCalled();

            logger
            .Verify(x => x.Error(It.IsAny <string>(), It.IsAny <object[]>()))
            .WasNotCalled();

            logger
            .Verify(x => x.Error(It.IsAny <Exception>(), It.IsAny <string>(), It.IsAny <object[]>()))
            .WasNotCalled();
        }
        public async Task should_not_send_messages_between_participants()
        {
            SetupSendMessageTests();
            // setup claims to return admin username
            var claims = new ClaimsPrincipalBuilder().WithUsername(RepresentativeUsername)
                         .WithRole(AppRoles.RepresentativeRole)
                         .Build();

            UpdateUserIdentity(claims);

            var          fromParticipantId = RepresentativeParticipantId.ToString();
            var          fromUsername      = RepresentativeUsername;
            var          toParticipantId   = IndividualParticipantId.ToString();
            var          toUsername        = IndividualUsername;
            const string message           = "test message";
            var          messageUuid       = Guid.NewGuid();

            await Hub.SendMessage(Conference.Id, message, toUsername, messageUuid);

            AssertMessageNotSentToHub(fromParticipantId, toParticipantId, message, messageUuid, IndividualGroupChannel);
            AssertMessageNotSentToApi(fromUsername, toUsername, message);
            AdminGroupChannel.Verify(x => x.AdminAnsweredChat(Conference.Id, toUsername), Times.Never);

            LoggerMock.Verify(
                x => x.Log(
                    LogLevel.Error,
                    It.IsAny <EventId>(),
                    It.IsAny <It.IsAnyType>(),
                    It.IsAny <InvalidInstantMessageException>(),
                    (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()),
                Times.Once);
        }
            public async Task ThrowException_WhenNoApprovalsShouldLogWarning()
            {
                // Arrange
                var cost     = MockCost();
                var approvas = new List <Approval>();

                // Act
                await ApprovalService.SubmitApprovals(cost, CostUser, approvas, BuType.Pg);

                // Assert
                LoggerMock.Verify(l => l.Warning(It.IsAny <string>()), Times.Once);
            }
Exemplo n.º 4
0
        public async Task Should_log_critical_when_exception_on_disconnect()
        {
            var exception = new InconclusiveException("Some test");
            await Hub.OnDisconnectedAsync(exception);

            LoggerMock.Verify(
                x => x.Log(
                    LogLevel.Warning,
                    It.IsAny <EventId>(),
                    It.Is <It.IsAnyType>((o, t) => o.ToString().StartsWith("There was an error when disconnecting from chat hub server-side")),
                    exception,
                    (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()),
                Times.Once);
        }
Exemplo n.º 5
0
        public async Task save_async_ignores_any_null_tasks_returned_by_saved_callbacks()
        {
            var logger        = new LoggerMock(MockBehavior.Loose);
            var loggerService = new LoggerServiceMock(MockBehavior.Loose);

            loggerService.When(x => x.GetLogger(typeof(StateService))).Return(logger);
            var service        = new StateService(new BlobCacheMock(), loggerService);
            var firstExecuted  = false;
            var secondExecuted = false;

            service.RegisterSaveCallback(_ => Task.Run(() => firstExecuted = true));
            service.RegisterSaveCallback(_ => null);
            service.RegisterSaveCallback(_ => Task.Run(() => secondExecuted = true));

            await service.SaveAsync();

            Assert.True(firstExecuted);
            Assert.True(secondExecuted);
            loggerService.Verify(x => x.GetLogger(typeof(StateService))).WasCalledExactlyOnce();
            logger.Verify(x => x.Error(It.IsAny <string>())).WasNotCalled();
            logger.Verify(x => x.Error(It.IsAny <string>(), It.IsAny <object[]>())).WasNotCalled();
            logger.Verify(x => x.Error(It.IsAny <Exception>(), It.IsAny <string>(), It.IsAny <object[]>())).WasNotCalled();
        }
Exemplo n.º 6
0
        public void save_logs_an_error_if_a_save_callback_fails()
        {
            var logger        = new LoggerMock(MockBehavior.Loose);
            var loggerService = new LoggerServiceMock(MockBehavior.Loose);

            loggerService
            .When(x => x.GetLogger(typeof(StateService)))
            .Return(logger);

            var sut = new StateServiceBuilder()
                      .WithLoggerService(loggerService)
                      .Build();

            sut.RegisterSaveCallback(_ => Observable.Throw <Unit>(new Exception("whatever")));

            sut.Save().Subscribe();

            logger
            .Verify(x => x.Log(LogLevel.Error, It.IsAny <string>()))
            .WasCalledExactlyOnce();
        }
 public void then_stats_logged_once_per_drop()
 {
     LoggerMock.Verify(l => l.Write(It.Is <string[]>(s => s.Any(_ => _.StartsWith("STATS")))), Times.Exactly(10));
 }
 public void then_drop_logged_once_per_drop()
 {
     LoggerMock.Verify(l => l.Write(It.Is <string[]>(s => s.Any(_ => _.StartsWith("DROPPING by RetryTimeout")))), Times.Exactly(10));
 }
Exemplo n.º 9
0
 public void then_stats_are_logged_as_expected()
 {
     LoggerMock.Verify(l => l.Write(It.IsAny <Exception>(), It.Is <string[]>(s => s.Any(_ => _.StartsWith("STATS")))), Times.Once);
 }
Exemplo n.º 10
0
 public void then_unhandled_message_is_logged()
 {
     LoggerMock.Verify(l => l.Write(It.IsAny <Exception>(), It.Is <string[]>(s => s.Any(_ => _.StartsWith("UNHANDLED")))), Times.Once);
 }