Skip to content

Commit

Permalink
Enable nullable annotations for the repo, then update a few files wit…
Browse files Browse the repository at this point in the history
…h nullable, convert .NET 1 data structures to strongly typed collections, and perform other modernizations
  • Loading branch information
erikmav committed Mar 12, 2024
1 parent 4ff2393 commit 6e4a4cf
Show file tree
Hide file tree
Showing 18 changed files with 553 additions and 1,249 deletions.
1 change: 1 addition & 0 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
<PropertyGroup>
<UseSharedCompilation>true</UseSharedCompilation>
<LangVersion>latest</LangVersion>
<Nullable>annotations</Nullable>
</PropertyGroup>
</Project>
73 changes: 20 additions & 53 deletions src/log4net.Tests/Appender/AdoNet/Log4NetCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,84 +22,53 @@
using System;
using System.Data;

#nullable enable

namespace log4net.Tests.Appender.AdoNet
{
public class Log4NetCommand : IDbCommand
{
#region AdoNetAppender

private static Log4NetCommand mostRecentInstance;

private IDbTransaction transaction;
private string commandText;
private readonly IDataParameterCollection parameters;
private CommandType commandType;
private int executeNonQueryCount;

public Log4NetCommand()
{
mostRecentInstance = this;
MostRecentInstance = this;

parameters = new Log4NetParameterCollection();
Parameters = new Log4NetParameterCollection();
}

public void Dispose()
{
// empty
}

public IDbTransaction Transaction
{
get { return transaction; }
set { transaction = value; }
}
public IDbTransaction? Transaction { get; set; }

public int ExecuteNonQuery()
{
executeNonQueryCount++;
ExecuteNonQueryCount++;
return 0;
}

public int ExecuteNonQueryCount
{
get { return executeNonQueryCount; }
}
public int ExecuteNonQueryCount { get; private set; }

public IDbDataParameter CreateParameter()
{
return new Log4NetParameter();
}

public string CommandText
{
get { return commandText; }
set { commandText = value; }
}
#pragma warning disable CS8766 // Nullability of reference types in return type doesn't match implicitly implemented member (possibly because of nullability attributes).
public string? CommandText { get; set; }
#pragma warning restore CS8766

public CommandType CommandType
{
get { return commandType; }
set { commandType = value; }
}
public CommandType CommandType { get; set; }

public void Prepare()
{
// empty
}

public IDataParameterCollection Parameters
{
get { return parameters; }
}
public IDataParameterCollection Parameters { get; }

public static Log4NetCommand MostRecentInstance
{
get { return mostRecentInstance; }
}

#endregion

#region Not Implemented
public static Log4NetCommand? MostRecentInstance { get; private set; }

public void Cancel()
{
Expand All @@ -121,24 +90,22 @@ public object ExecuteScalar()
throw new NotImplementedException();
}

public IDbConnection Connection
public IDbConnection? Connection
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}

public int CommandTimeout
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}

public UpdateRowSource UpdatedRowSource
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
get => throw new NotImplementedException();
set => throw new NotImplementedException();
}

#endregion
}
}
52 changes: 13 additions & 39 deletions src/log4net.Tests/Appender/AdoNet/Log4NetConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,40 +22,29 @@
using System;
using System.Data;

#nullable enable

namespace log4net.Tests.Appender.AdoNet
{
public class Log4NetConnection : IDbConnection
{
#region AdoNetAppender

private static Log4NetConnection mostRecentInstance;

private bool open;
private string connectionString;
private bool _open;

public Log4NetConnection()
{
mostRecentInstance = this;
MostRecentInstance = this;
}

public void Close()
{
open = false;
_open = false;
}

public ConnectionState State
{
get
{
return open ? ConnectionState.Open : ConnectionState.Closed;
}
}
public ConnectionState State => _open ? ConnectionState.Open : ConnectionState.Closed;

public string ConnectionString
{
get { return connectionString; }
set { connectionString = value; }
}
#pragma warning disable CS8766 // Nullability of reference types in return type doesn't match implicitly implemented member (possibly because of nullability attributes).
public string? ConnectionString { get; set; }
#pragma warning restore CS8766

public IDbTransaction BeginTransaction()
{
Expand All @@ -69,17 +58,10 @@ public IDbCommand CreateCommand()

public void Open()
{
open = true;
}

public static Log4NetConnection MostRecentInstance
{
get { return mostRecentInstance; }
_open = true;
}

#endregion

#region Not Implemented
public static Log4NetConnection? MostRecentInstance { get; private set; }

public IDbTransaction BeginTransaction(IsolationLevel il)
{
Expand All @@ -91,21 +73,13 @@ public void ChangeDatabase(string databaseName)
throw new NotImplementedException();
}

public int ConnectionTimeout
{
get { throw new NotImplementedException(); }
}
public int ConnectionTimeout => throw new NotImplementedException();

public string Database
{
get { throw new NotImplementedException(); }
}
public string Database => throw new NotImplementedException();

public void Dispose()
{
throw new NotImplementedException();
}

#endregion
}
}
20 changes: 4 additions & 16 deletions src/log4net.Tests/Appender/AdoNet/Log4NetTransaction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@
using System;
using System.Data;

#nullable enable

namespace log4net.Tests.Appender.AdoNet
{
public class Log4NetTransaction : IDbTransaction
{
#region AdoNetAppender

public void Commit()
{
// empty
Expand All @@ -38,25 +38,13 @@ public void Rollback()
// empty
}

#endregion

#region Not Implemented
public IDbConnection Connection => throw new NotImplementedException();

public IDbConnection Connection
{
get { throw new NotImplementedException(); }
}

public IsolationLevel IsolationLevel
{
get { throw new NotImplementedException(); }
}
public IsolationLevel IsolationLevel => throw new NotImplementedException();

public void Dispose()
{
throw new NotImplementedException();
}

#endregion
}
}
24 changes: 11 additions & 13 deletions src/log4net.Tests/Appender/AdoNetAppenderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@ public void NoBufferingTest()
{
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());

AdoNetAppender adoNetAppender = new AdoNetAppender();
adoNetAppender.BufferSize = -1;
adoNetAppender.ConnectionType = typeof(Log4NetConnection).AssemblyQualifiedName;
AdoNetAppender adoNetAppender = new AdoNetAppender
{
BufferSize = -1,
ConnectionType = typeof(Log4NetConnection).AssemblyQualifiedName!
};
adoNetAppender.ActivateOptions();

BasicConfigurator.Configure(rep, adoNetAppender);
Expand All @@ -61,9 +63,11 @@ public void BufferingTest()

int bufferSize = 5;

AdoNetAppender adoNetAppender = new AdoNetAppender();
adoNetAppender.BufferSize = bufferSize;
adoNetAppender.ConnectionType = typeof(Log4NetConnection).AssemblyQualifiedName;
AdoNetAppender adoNetAppender = new AdoNetAppender
{
BufferSize = bufferSize,
ConnectionType = typeof(Log4NetConnection).AssemblyQualifiedName!
};
adoNetAppender.ActivateOptions();

BasicConfigurator.Configure(rep, adoNetAppender);
Expand All @@ -83,7 +87,6 @@ public void BufferingTest()
public void WebsiteExample()
{
XmlDocument log4netConfig = new XmlDocument();
#region Load log4netConfig
log4netConfig.LoadXml(@"
<log4net>
<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
Expand Down Expand Up @@ -140,7 +143,6 @@ public void WebsiteExample()
<appender-ref ref=""AdoNetAppender"" />
</root>
</log4net>");
#endregion

ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
Expand Down Expand Up @@ -173,7 +175,6 @@ public void WebsiteExample()
public void BufferingWebsiteExample()
{
XmlDocument log4netConfig = new XmlDocument();
#region Load log4netConfig
log4netConfig.LoadXml(@"
<log4net>
<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
Expand Down Expand Up @@ -230,7 +231,6 @@ public void BufferingWebsiteExample()
<appender-ref ref=""AdoNetAppender"" />
</root>
</log4net>");
#endregion

ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
Expand Down Expand Up @@ -267,7 +267,6 @@ public void BufferingWebsiteExample()
public void NullPropertyXmlConfig()
{
XmlDocument log4netConfig = new XmlDocument();
#region Load log4netConfig
log4netConfig.LoadXml(@"
<log4net>
<appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender"">
Expand All @@ -289,7 +288,6 @@ public void NullPropertyXmlConfig()
<appender-ref ref=""AdoNetAppender"" />
</root>
</log4net>");
#endregion

ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
Expand All @@ -305,7 +303,7 @@ public void NullPropertyXmlConfig()
}

[Test]
public void NullPropertyProgmaticConfig()
public void NullPropertyProgrammaticConfig()
{
AdoNetAppenderParameter productIdParam = new AdoNetAppenderParameter();
productIdParam.ParameterName = "@productId";
Expand Down
Loading

0 comments on commit 6e4a4cf

Please sign in to comment.