© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•4y ago•
3 replies
LotusIsWorking

❔ Proper mocking for Unit Testing (NUnit)

public class TargetServiceSetEndDateAsTwoMonthsOut : PreProcessorAction<CreateTargetServiceCommand>
{
    private readonly IDateTime _dateTime;
    public TargetServiceSetEndDateAsTwoMonthsOut(IDateTime datetime)
    {
        this._dateTime = datetime;
    }

 public override Task<bool> CanProcessAsync(CreateTargetServiceCommand command)
    {
        if (command != null && command.ServiceType == ServiceType.STR)
            return Task.FromResult(true);
        else
            return Task.FromResult(false);
    }

    public override async Task ProcessAsync(CreateTargetServiceCommand command)
    {
        command.EndDate = DateOnly.FromDateTime(this._dateTime.Now).AddMonths(2);
        await Task.CompletedTask;
    }
}
        [Test]
        public async Task TargetServiceSetStartDateAsToday_EqualProcessTest()
        {
            var mockRepo = new Mock<IDateTime>();
            var rule = new TargetServiceSetStartDateAsToday(mockRepo.Object);
            var command = GetCommandWithReferenceTarget();
            await rule.ProcessAsync(command);
            Assert.AreEqual(command.StartDate, DateOnly.FromDateTime(mockRepo.Object.Now));
        }
public class TargetServiceSetEndDateAsTwoMonthsOut : PreProcessorAction<CreateTargetServiceCommand>
{
    private readonly IDateTime _dateTime;
    public TargetServiceSetEndDateAsTwoMonthsOut(IDateTime datetime)
    {
        this._dateTime = datetime;
    }

 public override Task<bool> CanProcessAsync(CreateTargetServiceCommand command)
    {
        if (command != null && command.ServiceType == ServiceType.STR)
            return Task.FromResult(true);
        else
            return Task.FromResult(false);
    }

    public override async Task ProcessAsync(CreateTargetServiceCommand command)
    {
        command.EndDate = DateOnly.FromDateTime(this._dateTime.Now).AddMonths(2);
        await Task.CompletedTask;
    }
}
        [Test]
        public async Task TargetServiceSetStartDateAsToday_EqualProcessTest()
        {
            var mockRepo = new Mock<IDateTime>();
            var rule = new TargetServiceSetStartDateAsToday(mockRepo.Object);
            var command = GetCommandWithReferenceTarget();
            await rule.ProcessAsync(command);
            Assert.AreEqual(command.StartDate, DateOnly.FromDateTime(mockRepo.Object.Now));
        }
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Unit Testing with NUnit
C#CC# / help
2y ago
❔ Unit Testing for OpenXML
C#CC# / help
4y ago
Mocking FileStream for integration testing
C#CC# / help
4y ago
unit testing
C#CC# / help
2y ago