Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/createrelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ jobs:
- name: Build Code
run: dotnet build MessagingService.sln --configuration Release

#- name: Run Unit Tests
# run: |
# echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
# dotnet test "MessagingService.BusinessLogic.Tests\MessagingService.BusinessLogic.Tests.csproj"
# dotnet test "MessagingService.EmailAggregate.Tests\MessagingService.EmailAggregate.Tests.csproj"
# dotnet test "MessagingService.Tests\MessagingService.Tests.csproj"
- name: Run Unit Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "MessagingService.BusinessLogic.Tests\MessagingService.BusinessLogic.Tests.csproj"
dotnet test "MessagingService.EmailAggregate.Tests\MessagingService.EmailAggregate.Tests.csproj"
dotnet test "MessagingService.Tests\MessagingService.Tests.csproj"

#- name: Build Docker Image
# run: docker build . --file MessagingService/Dockerfile --tag stuartferguson/messagingservice:latest --tag stuartferguson/messagingservice:${{ steps.get_version.outputs.VERSION }}
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ jobs:
- name: Build Code
run: dotnet build MessagingService.sln --configuration Release

#- name: Run Unit Tests
# run: |
# echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
# dotnet test "MessagingService.BusinessLogic.Tests\MessagingService.BusinessLogic.Tests.csproj"
# dotnet test "MessagingService.EmailAggregate.Tests\MessagingService.EmailAggregate.Tests.csproj"
# dotnet test "MessagingService.Tests\MessagingService.Tests.csproj"
- name: Run Unit Tests
run: |
echo "ASPNETCORE_ENVIRONMENT are > ${ASPNETCORE_ENVIRONMENT}"
dotnet test "MessagingService.BusinessLogic.Tests\MessagingService.BusinessLogic.Tests.csproj"
dotnet test "MessagingService.EmailAggregate.Tests\MessagingService.EmailAggregate.Tests.csproj"
dotnet test "MessagingService.Tests\MessagingService.Tests.csproj"

#- name: Build Docker Image
# run: docker build . --file MessagingService/Dockerfile --tag messagingservice:latest
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<DebugType>None</DebugType>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="Shouldly" Version="3.0.2" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="1.2.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\MessagingService.BusinessLogic\MessagingService.BusinessLogic.csproj" />
<ProjectReference Include="..\MessagingService.Testing\MessagingService.Testing.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MessagingService.BusinessLogic.Tests.RequestHandlers
{
using System.Threading;
using BusinessLogic.RequestHandlers;
using BusinessLogic.Requests;
using BusinessLogic.Services;
using Moq;
using Services;
using Shouldly;
using Testing;
using Xunit;

public class EmailRequestHandlerTests
{
[Fact]
public void TransactionRequestHandler_ProcessLogonTransactionRequest_IsHandled()
{
Mock<IEmailDomainService> emailDomainService = new Mock<IEmailDomainService>();
EmailRequestHandler handler = new EmailRequestHandler(emailDomainService.Object);

SendEmailRequest command = TestData.SendEmailRequest;

Should.NotThrow(async () =>
{
await handler.Handle(command, CancellationToken.None);
});

}
}
}
35 changes: 35 additions & 0 deletions MessagingService.BusinessLogic.Tests/Requests/RequestTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MessagingService.BusinessLogic.Tests.Requests
{
using BusinessLogic.Requests;
using Shouldly;
using Testing;
using Xunit;

public class RequestTests
{
[Fact]
public void SendEmailRequest_CanBeCreated_IsCreated()
{
SendEmailRequest request = SendEmailRequest.Create(TestData.ConnectionIdentifier,
TestData.MessageId,
TestData.FromAddress,
TestData.ToAddresses,
TestData.Subject,
TestData.Body,
TestData.IsHtmlTrue);

request.ShouldNotBeNull();
request.ConnectionIdentifier.ShouldBe(TestData.ConnectionIdentifier);
request.MessageId.ShouldBe(TestData.MessageId);
request.FromAddress.ShouldBe(TestData.FromAddress);
request.ToAddresses.ShouldBe(TestData.ToAddresses);
request.Subject.ShouldBe(TestData.Subject);
request.Body.ShouldBe(TestData.Body);
request.IsHtml.ShouldBe(TestData.IsHtmlTrue);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MessagingService.BusinessLogic.Tests.Services
{
using System.Threading;
using System.Threading.Tasks;
using BusinessLogic.Services;
using BusinessLogic.Services.EmailServices;
using EmailMessageAggregate;
using Moq;
using Shared.DomainDrivenDesign.EventStore;
using Shared.EventStore.EventStore;
using Testing;
using Xunit;

public class EmailDomainServiceTests
{
[Fact]
public async Task TransactionDomainService_ProcessLogonTransaction_TransactionIsProcessed()
{
Mock<IAggregateRepository<EmailAggregate>> aggregateRepository = new Mock<IAggregateRepository<EmailAggregate>>();
aggregateRepository.Setup(a => a.GetLatestVersion(It.IsAny<Guid>(), It.IsAny<CancellationToken>())).ReturnsAsync(TestData.GetEmptyEmailAggregate());
Mock<IAggregateRepositoryManager> aggregateRepositoryManager = new Mock<IAggregateRepositoryManager>();
aggregateRepositoryManager.Setup(a => a.GetAggregateRepository<EmailAggregate>(It.IsAny<Guid>())).Returns(aggregateRepository.Object);
Mock<IEmailServiceProxy> emailServiceProxy = new Mock<IEmailServiceProxy>();
emailServiceProxy
.Setup(e => e.SendEmail(It.IsAny<Guid>(),
It.IsAny<String>(),
It.IsAny<List<String>>(),
It.IsAny<String>(),
It.IsAny<String>(),
It.IsAny<Boolean>(),
It.IsAny<CancellationToken>())).ReturnsAsync(TestData.SuccessfulEmailServiceProxyResponse);
//IConfigurationRoot configurationRoot = new ConfigurationBuilder().AddInMemoryCollection(TestData.DefaultAppSettings).Build();
//ConfigurationReader.Initialise(configurationRoot);

//Logger.Initialise(NullLogger.Instance);

EmailDomainService emailDomainService =
new EmailDomainService(aggregateRepositoryManager.Object, emailServiceProxy.Object);

await emailDomainService.SendEmailMessage(TestData.ConnectionIdentifier,
TestData.MessageId,
TestData.FromAddress,
TestData.ToAddresses,
TestData.Subject,
TestData.Body,
TestData.IsHtmlTrue,
CancellationToken.None);
}

}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
namespace MessagingService.BusinessLogic.Services.EmailServices
{
using System;
using System.Diagnostics.CodeAnalysis;
using System.Net;

/// <summary>
///
/// </summary>
[ExcludeFromCodeCoverage]
public class EmailServiceProxyResponse
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@

namespace MessagingService.Service.Services.Email.IntegrationTest
{
using System.Diagnostics.CodeAnalysis;
using BusinessLogic.Requests;
using BusinessLogic.Services.EmailServices;

[ExcludeFromCodeCoverage]
public class IntegrationTestEmailServiceProxy : IEmailServiceProxy
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

namespace MessagingService.Service.Services.Email.Smtp2Go
{
using System.Diagnostics.CodeAnalysis;

[ExcludeFromCodeCoverage]
public class Smtp2GoSendEmailRequest
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

namespace MessagingService.Service.Services.Email.Smtp2Go
{
using System.Diagnostics.CodeAnalysis;

[ExcludeFromCodeCoverage]
public class Smtp2GoSendEmailResponse
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

namespace MessagingService.Service.Services.Email.Smtp2Go
{
using System.Diagnostics.CodeAnalysis;

[ExcludeFromCodeCoverage]
public class Smtp2GoSendEmailResponseData
{
/// <summary>
Expand Down
2 changes: 2 additions & 0 deletions MessagingService.DataTransferObjects/SendEmailRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
{
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;

[ExcludeFromCodeCoverage]
public class SendEmailRequest
{
#region Properties
Expand Down
2 changes: 2 additions & 0 deletions MessagingService.DataTransferObjects/SendEmailResponse.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
namespace MessagingService.DataTransferObjects
{
using System;
using System.Diagnostics.CodeAnalysis;

/// <summary>
///
/// </summary>
[ExcludeFromCodeCoverage]
public class SendEmailResponse
{
#region Properties
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="Shared.EventStore" Version="0.0.12" />
<PackageReference Include="Shouldly" Version="3.0.2" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="1.2.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\MessagingService.EmailMessageAggregate\MessagingService.EmailMessageAggregate.csproj" />
<ProjectReference Include="..\MessagingService.Testing\MessagingService.Testing.csproj" />
</ItemGroup>

</Project>
46 changes: 46 additions & 0 deletions MessagingService.EmailAggregate.Tests/UnitTest1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System;
using Xunit;

namespace MessagingService.EmailAggregate.Tests
{
using EmailMessageAggregate;
using Shouldly;
using Testing;

public class EmailAggregateTests
{
[Fact]
public void EmailAggregate_CanBeCreated_IsCreated()
{
EmailAggregate emailAggregate = EmailAggregate.Create(TestData.MessageId);

emailAggregate.MessageId.ShouldBe(TestData.MessageId);
}

[Fact]
public void EmailAggregate_SendRequestToProvider_RequestSent()
{
EmailAggregate emailAggregate = EmailAggregate.Create(TestData.MessageId);

emailAggregate.SendRequestToProvider(TestData.FromAddress, TestData.ToAddresses, TestData.Subject, TestData.Body, TestData.IsHtmlTrue);

emailAggregate.FromAddress.ShouldBe(TestData.FromAddress);
emailAggregate.Subject.ShouldBe(TestData.Subject);
emailAggregate.Body.ShouldBe(TestData.Body);
emailAggregate.IsHtml.ShouldBe(TestData.IsHtmlTrue);
// TODO: Get Recipients
}

[Fact]
public void EmailAggregate_ReceiveResponseFromProvider_ResponseReceived()
{
EmailAggregate emailAggregate = EmailAggregate.Create(TestData.MessageId);

emailAggregate.SendRequestToProvider(TestData.FromAddress, TestData.ToAddresses, TestData.Subject, TestData.Body, TestData.IsHtmlTrue);
emailAggregate.ReceiveResponseFromProvider(TestData.ProviderRequestReference, TestData.ProviderEmailReference);

emailAggregate.ProviderRequestReference.ShouldBe(TestData.ProviderRequestReference);
emailAggregate.ProviderEmailReference.ShouldBe(TestData.ProviderEmailReference);
}
}
}
Loading