Skip to content

Commit

Permalink
Added tests for Nybus.NLog
Browse files Browse the repository at this point in the history
  • Loading branch information
Kralizek committed Sep 13, 2015
1 parent 86c9f3f commit b62e86b
Show file tree
Hide file tree
Showing 4 changed files with 149 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,15 @@ public void MassTransitConnectionDescriptor_can_be_parsed_from_configuration_fil

Assert.That(descriptor, Is.Not.Null);
}

[Test]
public void FromConfiguration_returns_null_if_item_cant_be_found()
{
var nameOfConnectionString = fixture.Create<string>();

var descriptor = MassTransitConnectionDescriptor.FromConfiguration(nameOfConnectionString);

Assert.That(descriptor, Is.Null);
}
}
}
131 changes: 131 additions & 0 deletions tests/Tests.NLog/Logging/NLogLoggerTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Moq;
using NLog;
using NUnit.Framework;
using Nybus.Logging;
using Ploeh.AutoFixture;
using ILogger = NLog.ILogger;
using LogLevel = Nybus.Logging.LogLevel;

namespace Tests.Logging
{
[TestFixture]
public class NLogLoggerTests
{
private IFixture fixture;
private Mock<NLog.ILogger> mockLogger;

[SetUp]
public void Initialize()
{
fixture = new Fixture();

mockLogger = new Mock<ILogger>();
}

[Test]
[ExpectedException]
public void Logger_is_required()
{
new NLogLogger(null);
}

private NLogLogger CreateSystemUnderTest()
{
return new NLogLogger(mockLogger.Object);
}

public IEnumerable<object> GetLogLevels()
{
yield return new object[] {LogLevel.Trace, NLog.LogLevel.Trace};

yield return new object[] {LogLevel.Debug, NLog.LogLevel.Debug};

yield return new object[] {LogLevel.Info, NLog.LogLevel.Info};

yield return new object[] {LogLevel.Error, NLog.LogLevel.Error};

yield return new object[] {LogLevel.Fatal, NLog.LogLevel.Fatal};

yield return new object[] {LogLevel.Warn, NLog.LogLevel.Warn};

yield return new object[] {(LogLevel) 0, NLog.LogLevel.Info};
}

[Test]
[TestCaseSource(nameof(GetLogLevels))]
public void Log_levels_are_correctly_converted(LogLevel level, NLog.LogLevel expected)
{
var sut = CreateSystemUnderTest();

var message = fixture.Create<string>();

sut.Log(level, message);

mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => lei.Level == expected)), Times.Once);
}

[Test]
[TestCaseSource(nameof(GetLogLevels))]
public async Task Async_Log_levels_are_correctly_converted(LogLevel level, NLog.LogLevel expected)
{
var sut = CreateSystemUnderTest();

var message = fixture.Create<string>();

await sut.LogAsync(level, message);

mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => lei.Level == expected)), Times.Once);
}

[Test]
public async Task Data_is_added_as_properties()
{
var data = new {text = fixture.Create<string>()};

var sut = CreateSystemUnderTest();

var message = fixture.Create<string>();

await sut.LogAsync(LogLevel.Info, message, data);

mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => string.Equals((string)lei.Properties[nameof(data.text)], data.text))), Times.Once);
}

[Test]
public async Task Message_is_added_as_message()
{
var sut = CreateSystemUnderTest();

var message = fixture.Create<string>();

await sut.LogAsync(LogLevel.Info, message);

mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => string.Equals(message, lei.Message))), Times.Once);
}

[Test]
public void Exception_information_are_added_to_log()
{
var sut = CreateSystemUnderTest();
var message = fixture.Create<string>();

try
{
Exception innerException = new Exception("This is an inner exception");
throw new Exception("This is a test exception", innerException);
}
catch (Exception ex)
{
sut.Log(LogLevel.Error, message, new {exception = ex});
}

mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => string.Equals(message, lei.Message))), Times.Once);
mockLogger.Verify(p => p.Log(It.Is<LogEventInfo>(lei => string.Equals((string)lei.Properties["error-method"], nameof(Exception_information_are_added_to_log)))), Times.Once);
}
}
}
9 changes: 7 additions & 2 deletions tests/Tests.NLog/Tests.NLog.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<ProjectGuid>{CF58265C-4A09-49CE-B250-5273171839A9}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Tests.NLog</RootNamespace>
<RootNamespace>Tests</RootNamespace>
<AssemblyName>Tests.NLog</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
Expand All @@ -34,6 +34,10 @@
<HintPath>..\..\Packages\Moq.4.2.1507.0118\lib\net40\Moq.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\..\Packages\NLog.4.1.1\lib\net45\NLog.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<HintPath>..\..\Packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<Private>True</Private>
Expand All @@ -52,6 +56,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Logging\NLogLoggerTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
Expand All @@ -61,7 +66,7 @@
</ProjectReference>
<ProjectReference Include="..\..\src\NLog\NLog.csproj">
<Project>{d72ee66a-c189-40ff-97be-40ef9c08bbf8}</Project>
<Name>NLog</Name>
<Name>Nybus.NLog</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions tests/Tests.NLog/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
<packages>
<package id="AutoFixture" version="3.34.0" targetFramework="net46" />
<package id="Moq" version="4.2.1507.0118" targetFramework="net46" />
<package id="NLog" version="4.1.1" targetFramework="net46" />
<package id="NUnit" version="2.6.4" targetFramework="net46" />
</packages>

0 comments on commit b62e86b

Please sign in to comment.