Skip to content

Commit

Permalink
Write tests for service get all sorted by date
Browse files Browse the repository at this point in the history
  • Loading branch information
cwetanow committed Mar 2, 2017
1 parent a5f1b41 commit 3884ea3
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/Logs.Services.Tests/Logs.Services.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
<ItemGroup>
<Compile Include="LogsServiceTests\ConstructorTests.cs" />
<Compile Include="LogsServiceTests\CreateTrainingLogTests.cs" />
<Compile Include="LogsServiceTests\GetAllSortedByDateTests.cs" />
<Compile Include="LogsServiceTests\GetLatestLogsTests.cs" />
<Compile Include="LogsServiceTests\GetPagedTests.cs" />
<Compile Include="LogsServiceTests\GetTopLogsTests.cs" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Logs.Data.Contracts;
using Logs.Factories;
using Logs.Models;
using Logs.Providers.Contracts;
using Logs.Services.Contracts;
using Moq;
using NUnit.Framework;

namespace Logs.Services.Tests.LogsServiceTests
{
[TestFixture]
public class GetAllSortedByDateTests
{
[Test]
public void TestGetAllSortedByDate_ShouldCallRepositoryGetAllCorrectly()
{
// Arrange
var expectedDescending = true;

var mockedLogRepository = new Mock<IRepository<TrainingLog>>();
var mockedUnitOfWork = new Mock<IUnitOfWork>();
var mockedLogFactory = new Mock<ITrainingLogFactory>();
var mockedUserService = new Mock<IUserService>();
var mockedDateTimeProvider = new Mock<IDateTimeProvider>();

var service = new LogsService(mockedLogRepository.Object,
mockedUnitOfWork.Object,
mockedLogFactory.Object,
mockedUserService.Object,
mockedDateTimeProvider.Object);

// Act
service.GetAllSortedByDate();

// Assert
mockedLogRepository.Verify(r =>
r.GetAll(It.IsAny<Expression<Func<TrainingLog, bool>>>(), It.IsAny<Expression<Func<TrainingLog, DateTime>>>(), expectedDescending),
Times.Once);
}

[Test]
public void TestGetAllSortedByDate_ShouldReturnCorrectly()
{
// Arrange
var logs = new List<TrainingLog>();

var mockedLogRepository = new Mock<IRepository<TrainingLog>>();
mockedLogRepository.Setup(r => r.GetAll(It.IsAny<Expression<Func<TrainingLog, bool>>>(),
It.IsAny<Expression<Func<TrainingLog, DateTime>>>(),
It.IsAny<bool>()))
.Returns(logs);

var mockedUnitOfWork = new Mock<IUnitOfWork>();
var mockedLogFactory = new Mock<ITrainingLogFactory>();
var mockedUserService = new Mock<IUserService>();
var mockedDateTimeProvider = new Mock<IDateTimeProvider>();

var service = new LogsService(mockedLogRepository.Object,
mockedUnitOfWork.Object,
mockedLogFactory.Object,
mockedUserService.Object,
mockedDateTimeProvider.Object);

// Act
var result = service.GetAllSortedByDate();

// Assert
CollectionAssert.AreEqual(logs, result);
}
}
}

0 comments on commit 3884ea3

Please sign in to comment.