public void ConfigureColumnOptionsSetsPrimaryKeyWhenSettingPrimaryKeyColumnNameToAdditionalColumn() { // Arrange const string customColumnName = "TestCustomColumn"; var customColumn = new SqlColumn { ColumnName = customColumnName }; var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { PrimaryKey = null, AdditionalColumns = new List <SqlColumn> { customColumn } }; SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["primaryKeyColumnName"]).Returns(customColumnName); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(columnOptions, _configurationSectionMock.Object); // Assert Assert.Equal(customColumn, result.PrimaryKey); }
public void ConfigureColumnOptionsThrowsWhenSettingPrimaryKeyColumnNameAndClusteredColumnstoreIndex() { // Arrange SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["primaryKeyColumnName"]).Returns("TestPrimaryKeyColumnName"); _configurationSectionMock.Setup(s => s["clusteredColumnstoreIndex"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act + assert Assert.Throws <ArgumentException>(() => sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object)); }
public void ConfigureColumnOptionsAddsClusteredColumnstoreIndexOption() { // Arrange SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["clusteredColumnstoreIndex"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.ClusteredColumnstoreIndex); }
public void ConfigureColumnOptionsSetsPrimaryKeyWhenSettingPrimaryKeyColumnNameToStandardColumnName() { // Arrange SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["primaryKeyColumnName"]).Returns("Message"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.Equal(result.Message, result.PrimaryKey); }
public void ConfigureColumnOptionsAddsColumnIdAlwaysWithAllowNullsFalse() { // Arrange SetupConfigurationSectionMocks(); SetupColumnSectionMock("id", allowNull: true); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.False(result.Id.AllowNull); }
public void ConfigureColumnOptionsAddsDisableTriggersOption() { // Arrange SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["disableTriggers"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.DisableTriggers); }
public void ConfigureColumnOptionsThrowsWhenSettingPrimaryKeyColumnNameToUndefinedColumnNameAndPrimaryKeyRemainsNull() { // Arrange var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { PrimaryKey = null }; SetupConfigurationSectionMocks(); _configurationSectionMock.Setup(s => s["primaryKeyColumnName"]).Returns("TestUndefinedPrimaryKeyColumnName"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act + assert Assert.Throws <ArgumentException>(() => sut.ConfigureColumnOptions(columnOptions, _configurationSectionMock.Object)); }
public void ConfigureColumnOptionsAddsColumnLevelStoreAsEnumOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("level"); columnSectionMock.Setup(s => s["storeAsEnum"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.Level.StoreAsEnum); }
public void ConfigureColumnOptionsAddsColumnLogEventExcludeAdditionalPropertiesOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("logEvent"); columnSectionMock.Setup(s => s["excludeAdditionalProperties"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.LogEvent.ExcludeAdditionalProperties); }
public void ConfigureColumnOptionsAddsColumnPropertiesUsePropertyKeyAsElementNameOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("properties"); columnSectionMock.Setup(s => s["usePropertyKeyAsElementName"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.Properties.UsePropertyKeyAsElementName); }
public void ConfigureColumnOptionsAddsColumnPropertiesOmitElementIfEmptyOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("properties"); columnSectionMock.Setup(s => s["omitElementIfEmpty"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.Properties.OmitElementIfEmpty); }
public void ConfigureColumnOptionsAddsColumnLogEventExcludeStandardColumnsOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("logEvent"); columnSectionMock.Setup(s => s["excludeStandardColumns"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.LogEvent.ExcludeStandardColumns); }
public void ConfigureColumnOptionsAddsColumnTimeStampConvertToUtcOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("timeStamp"); columnSectionMock.Setup(s => s["convertToUtc"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.TimeStamp.ConvertToUtc); }
public void ConfigureColumnOptionsCalledWithConfigSectionNullReturnsUnchangedColumnOptions() { // Arrange var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions(); columnOptions.Store.Clear(); columnOptions.Store.Add(StandardColumn.LogEvent); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(columnOptions, null); // Assert Assert.True(result.Store.Count == 1); Assert.True(result.Store.Contains(StandardColumn.LogEvent)); }
public void ConfigureColumnOptionsAddsColumnPropertiesExcludeAdditionalPropertiesOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("properties"); columnSectionMock.Setup(s => s["excludeAdditionalProperties"]).Returns("true"); var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions(); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.Properties.ExcludeAdditionalProperties); }
public void ConfigureColumnOptionsCalledWithEmptyConfigSectionReturnsUnchangedColumnOptions() { // Arrange var columnOptions = new ColumnOptions(); columnOptions.Store.Clear(); columnOptions.Store.Add(StandardColumn.LogEvent); var configurationSectionMock = new Mock <IConfigurationSection>(); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(columnOptions, configurationSectionMock.Object); // Assert Assert.True(result.Store.Count == 1); Assert.True(result.Store.Contains(StandardColumn.LogEvent)); }
public void ConfigureColumnOptionsAddsColumnIdBigIntOption() { // Arrange SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("id"); columnSectionMock.Setup(s => s["bigInt"]).Returns("true"); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert #pragma warning disable 618 // deprecated: BigInt property Assert.True(result.Id.BigInt); #pragma warning restore 618 // deprecated: BigInt property }
public void ConfigureColumnOptionsAddsColumnPropertiesStructureElementNameOption() { // Arrange const string structureElementName = "TestStructureElementName"; SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("properties"); columnSectionMock.Setup(s => s["structureElementName"]).Returns(structureElementName); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.Equal(structureElementName, result.Properties.StructureElementName); }
public void ConfigureColumnOptionsAddsColumnPropertiesRootElementNameOption() { // Arrange const string rootElementName = "TestRootElementName"; SetupConfigurationSectionMocks(); var columnSectionMock = SetupColumnSectionMock("properties"); columnSectionMock.Setup(s => s["rootElementName"]).Returns(rootElementName); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.Equal(rootElementName, result.Properties.RootElementName); }
public void ConfigureColumnOptionsAddsColumnExceptionWithSpecifiedOptions() { // Arrange const string columnName = "TestColumnName"; var dataType = SqlDbType.Bit; var allowNull = true; var nonClusteredIndex = true; SetupConfigurationSectionMocks(); SetupColumnSectionMock("exception", columnName, dataType, allowNull, nonClusteredIndex); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new ColumnOptions(), _configurationSectionMock.Object); // Assert AssertColumnSqlOptions(columnName, dataType, allowNull, nonClusteredIndex, result.Exception); }
public void ConfigureColumnOptionsAddsColumnMessageTemplateWithSpecifiedOptions() { // Arrange const string columnName = "TestColumnName"; var dataType = SqlDbType.Bit; var allowNull = true; var nonClusteredIndex = true; SetupConfigurationSectionMocks(); SetupColumnSectionMock("messageTemplate", columnName, dataType, allowNull, nonClusteredIndex); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert AssertColumnSqlOptions(columnName, dataType, allowNull, nonClusteredIndex, result.MessageTemplate); }
public void ConfigureColumnOptionsRemovesStandardColumns() { // Arrange SetupConfigurationSectionMocks(); var messageColumnSectionMock = new Mock <IConfigurationSection>(); var timeStampColumnSectionMock = new Mock <IConfigurationSection>(); var columnSectionsList = new List <IConfigurationSection> { messageColumnSectionMock.Object, timeStampColumnSectionMock.Object }; messageColumnSectionMock.Setup(s => s.Value).Returns(StandardColumn.Message.ToString()); timeStampColumnSectionMock.Setup(s => s.Value).Returns(StandardColumn.TimeStamp.ToString); _removeStandardColumnsSectionMock.Setup(s => s.GetChildren()).Returns(columnSectionsList); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.False(result.Store.Contains(StandardColumn.Message)); Assert.False(result.Store.Contains(StandardColumn.TimeStamp)); }
public void ConfigureColumnOptionsAddsStandardColumns() { // Arrange SetupConfigurationSectionMocks(); var logEventColumnSectionMock = new Mock <IConfigurationSection>(); var messageTemplateColumnSectionMock = new Mock <IConfigurationSection>(); var columnSectionsList = new List <IConfigurationSection> { logEventColumnSectionMock.Object, messageTemplateColumnSectionMock.Object }; logEventColumnSectionMock.Setup(s => s.Value).Returns(StandardColumn.LogEvent.ToString()); messageTemplateColumnSectionMock.Setup(s => s.Value).Returns(StandardColumn.MessageTemplate.ToString); _addStandardColumnsSectionMock.Setup(s => s.GetChildren()).Returns(columnSectionsList); var sut = new MicrosoftExtensionsColumnOptionsProvider(); // Act var result = sut.ConfigureColumnOptions(new Serilog.Sinks.MSSqlServer.ColumnOptions(), _configurationSectionMock.Object); // Assert Assert.True(result.Store.Contains(StandardColumn.LogEvent)); Assert.True(result.Store.Contains(StandardColumn.MessageTemplate)); }