Exemplo n.º 1
0
        public void WriteEventCallsSqlCommandWrapperAddParameterForEachField()
        {
            // Arrange
            var logEvent        = TestLogEventHelper.CreateLogEvent();
            var field1Value     = "FieldValue1";
            var field2Value     = 2;
            var field3Value     = new DateTimeOffset(2020, 1, 1, 0, 0, 0, TimeSpan.Zero);
            var fieldsAndValues = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("FieldName1", field1Value),
                new KeyValuePair <string, object>("FieldName2", field2Value),
                new KeyValuePair <string, object>("FieldNameThree", field3Value)
            };

            _logEventDataGeneratorMock.Setup(d => d.GetColumnsAndValues(It.IsAny <LogEvent>()))
            .Returns(fieldsAndValues);

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlCommandWrapperMock.Verify(c => c.AddParameter("@P0", field1Value), Times.Once);
            _sqlCommandWrapperMock.Verify(c => c.AddParameter("@P1", field2Value), Times.Once);
            _sqlCommandWrapperMock.Verify(c => c.AddParameter("@P2", field3Value), Times.Once);
        }
Exemplo n.º 2
0
        public void WriteEventRethrowsIfSqlCommandExecuteNonQueryThrows()
        {
            // Arrange
            _sqlCommandWrapperMock.Setup(c => c.ExecuteNonQuery()).Callback(() => throw new Exception());
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act + assert
            Assert.Throws <Exception>(() => _sut.WriteEvent(logEvent));
        }
Exemplo n.º 3
0
        public void WriteEventRethrowsIfLogEventDataGeneratorGetColumnsAndValuesThrows()
        {
            // Arrange
            _logEventDataGeneratorMock.Setup(d => d.GetColumnsAndValues(It.IsAny <LogEvent>())).Callback(() => throw new Exception());
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act + assert
            Assert.Throws <Exception>(() => _sut.WriteEvent(logEvent));
        }
Exemplo n.º 4
0
        public void WriteEventRethrowsIfSqlConnectionFactoryCreateThrows()
        {
            // Arrange
            _sqlConnectionFactoryMock.Setup(f => f.Create()).Callback(() => throw new Exception());
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act + assert
            Assert.Throws <Exception>(() => _sut.WriteEvent(logEvent));
        }
        private static List <LogEvent> CreateLogEvents()
        {
            var logEvents = new List <LogEvent>
            {
                TestLogEventHelper.CreateLogEvent(),
                TestLogEventHelper.CreateLogEvent()
            };

            return(logEvents);
        }
Exemplo n.º 6
0
        public void WriteEventSetsSqlCommandWrapperCommandTypeText()
        {
            // Arrange
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlCommandWrapperMock.VerifySet(c => c.CommandType = System.Data.CommandType.Text);
        }
Exemplo n.º 7
0
        public void WriteEventCallsSqlConnectionWrappeCreateCommand()
        {
            // Arrange
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlConnectionWrapperMock.Verify(c => c.CreateCommand(), Times.Once);
        }
Exemplo n.º 8
0
        public void WriteEventCallsSqlConnectionFactoryCreate()
        {
            // Arrange
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlConnectionFactoryMock.Verify(f => f.Create(), Times.Once);
        }
Exemplo n.º 9
0
        public void WriteEventCallsLogEventDataGeneratorGetColumnsAndValuesWithLogEvent()
        {
            // Arrange
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _logEventDataGeneratorMock.Verify(d => d.GetColumnsAndValues(logEvent), Times.Once);
        }
Exemplo n.º 10
0
        public void WriteEventCallsSqlCommandWrapperExecuteNonQuery()
        {
            // Arrange
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlCommandWrapperMock.Verify(c => c.ExecuteNonQuery(), Times.Once);
        }
Exemplo n.º 11
0
        public void WriteEventRethrowsIfSqlCommandAddParameterThrows()
        {
            // Arrange
            _sqlCommandWrapperMock.Setup(c => c.AddParameter(It.IsAny <string>(), It.IsAny <object>())).Callback(() => throw new Exception());
            var fieldsAndValues = new List <KeyValuePair <string, object> > {
                new KeyValuePair <string, object>("FieldName1", "FieldValue1")
            };

            _logEventDataGeneratorMock.Setup(d => d.GetColumnsAndValues(It.IsAny <LogEvent>()))
            .Returns(fieldsAndValues);
            var logEvent = TestLogEventHelper.CreateLogEvent();

            // Act + assert
            Assert.Throws <Exception>(() => _sut.WriteEvent(logEvent));
        }
        public async Task EmitBatchAsyncCallsSqlLogEventWriter()
        {
            // Arrange
            SetupSut();
            var logEvents = new List <LogEvent> {
                TestLogEventHelper.CreateLogEvent()
            };

            _sqlBulkBatchWriter.Setup(w => w.WriteBatch(It.IsAny <IEnumerable <LogEvent> >(), _dataTable))
            .Callback <IEnumerable <LogEvent>, DataTable>((e, d) =>
            {
                Assert.Same(logEvents, e);
            });

            // Act
            await _sut.EmitBatchAsync(logEvents).ConfigureAwait(false);

            // Assert
            _sqlBulkBatchWriter.Verify(w => w.WriteBatch(It.IsAny <IEnumerable <LogEvent> >(), _dataTable), Times.Once);
        }
Exemplo n.º 13
0
        public void WriteEventSetsSqlCommandWrapperCommandTextToSqlInsertWithCorrectFieldsAndValues()
        {
            // Arrange
            var expectedSqlCommandText = $"INSERT INTO [{_schemaName}].[{_tableName}] ([FieldName1],[FieldName2],[FieldNameThree]) VALUES (@P0,@P1,@P2)";
            var logEvent        = TestLogEventHelper.CreateLogEvent();
            var fieldsAndValues = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("FieldName1", "FieldValue1"),
                new KeyValuePair <string, object>("FieldName2", 2),
                new KeyValuePair <string, object>("FieldNameThree", new DateTimeOffset(2020, 1, 1, 0, 0, 0, TimeSpan.Zero))
            };

            _logEventDataGeneratorMock.Setup(d => d.GetColumnsAndValues(It.IsAny <LogEvent>()))
            .Returns(fieldsAndValues);

            // Act
            _sut.WriteEvent(logEvent);

            // Assert
            _sqlCommandWrapperMock.VerifySet(c => c.CommandText = expectedSqlCommandText);
        }