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); }
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)); }
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)); }
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); }
public void WriteEventSetsSqlCommandWrapperCommandTypeText() { // Arrange var logEvent = TestLogEventHelper.CreateLogEvent(); // Act _sut.WriteEvent(logEvent); // Assert _sqlCommandWrapperMock.VerifySet(c => c.CommandType = System.Data.CommandType.Text); }
public void WriteEventCallsSqlConnectionWrappeCreateCommand() { // Arrange var logEvent = TestLogEventHelper.CreateLogEvent(); // Act _sut.WriteEvent(logEvent); // Assert _sqlConnectionWrapperMock.Verify(c => c.CreateCommand(), Times.Once); }
public void WriteEventCallsSqlConnectionFactoryCreate() { // Arrange var logEvent = TestLogEventHelper.CreateLogEvent(); // Act _sut.WriteEvent(logEvent); // Assert _sqlConnectionFactoryMock.Verify(f => f.Create(), Times.Once); }
public void WriteEventCallsLogEventDataGeneratorGetColumnsAndValuesWithLogEvent() { // Arrange var logEvent = TestLogEventHelper.CreateLogEvent(); // Act _sut.WriteEvent(logEvent); // Assert _logEventDataGeneratorMock.Verify(d => d.GetColumnsAndValues(logEvent), Times.Once); }
public void WriteEventCallsSqlCommandWrapperExecuteNonQuery() { // Arrange var logEvent = TestLogEventHelper.CreateLogEvent(); // Act _sut.WriteEvent(logEvent); // Assert _sqlCommandWrapperMock.Verify(c => c.ExecuteNonQuery(), Times.Once); }
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); }
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); }