Skip to content

Commit

Permalink
Merge pull request #2282 from Paul-Hadfield/master
Browse files Browse the repository at this point in the history
Brings in builder pattern for #2263
  • Loading branch information
stevejgordon authored Apr 16, 2018
2 parents 5954014 + 913a97a commit 8aeecd1
Show file tree
Hide file tree
Showing 5 changed files with 381 additions and 166 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
using System;
using AllReady.Areas.Admin.Controllers;
using AllReady.Areas.Admin.ViewModels.Validators;
using AllReady.Services;
using MediatR;
using Moq;

namespace AllReady.UnitTest.Areas.Admin.Controllers.Builders
{
public class CampaignAdminControllerBuilder
{
private Func<DateTime> _dateTimeTodayDate;

private readonly IMediator _mediator;
private readonly IImageService _imageService;
private IImageSizeValidator _imageSizeValidator;

private CampaignAdminControllerBuilder(IMediator mediator, IImageService imageService, IImageSizeValidator imageSizeValidator)
{
_mediator = mediator;
_imageService = imageService;
_imageSizeValidator = imageSizeValidator;
}

public static CampaignAdminControllerBuilder AllNullParamsInstance()
{
return new CampaignAdminControllerBuilder(null, null, null);
}

public static CampaignAdminControllerBuilder WithMediator(IMediator mediatorObject)
{
return new CampaignAdminControllerBuilder(mediatorObject, Mock.Of<IImageService>(), null);
}

public static CampaignAdminControllerBuilder WithInstances(IMediator mediatorObject, IImageService imageService)
{
return new CampaignAdminControllerBuilder(mediatorObject, imageService, null);
}

public CampaignAdminControllerBuilder WithImageSizeValidator(IImageSizeValidator imageSizeValidator)
{
_imageSizeValidator = imageSizeValidator;
return this;
}

public CampaignAdminControllerBuilder WithToday(Func<DateTime> func)
{
_dateTimeTodayDate = func;
return this;
}

public CampaignController Build()
{
var controller = new CampaignController(_mediator, _imageService, _imageSizeValidator);

if (_dateTimeTodayDate != null)
{
controller.DateTimeNow = _dateTimeTodayDate;
}

return controller;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
using System;
using AllReady.Areas.Admin.Controllers;
using AllReady.Areas.Admin.ViewModels.Validators;
using AllReady.Security;
using AllReady.Services;
using MediatR;
using Moq;

namespace AllReady.UnitTest.Areas.Admin.Controllers.Builders
{
public class EventControllerBuilder
{
private IImageService _imageService;
private IMediator _mediator;
private IValidateEventEditViewModels _validateEventEditViewModels;
private IUserAuthorizationService _userAuthorizationService;
private IImageSizeValidator _imageSizeValidator;

private Func<DateTime> _dateTimeTodayDate;

private EventControllerBuilder(IImageService imageService, IMediator mediator, IValidateEventEditViewModels validateEventEditViewModels,
IUserAuthorizationService userAuthorizationService, IImageSizeValidator imageSizeValidator)
{
_imageService = imageService;
_mediator = mediator;
_validateEventEditViewModels= validateEventEditViewModels;
_userAuthorizationService = userAuthorizationService;
_imageSizeValidator= imageSizeValidator;
}
public static EventControllerBuilder FullyMockedInstance()
{
return new EventControllerBuilder(Mock.Of<IImageService>(), Mock.Of<IMediator>(), Mock.Of<IValidateEventEditViewModels>(),
Mock.Of<IUserAuthorizationService>(), Mock.Of<IImageSizeValidator>());
}
public static EventControllerBuilder WithSuppliedInstances(IImageService imageService, IMediator mediator, IValidateEventEditViewModels validateEventEditViewModels)
{
return new EventControllerBuilder(imageService, mediator, validateEventEditViewModels, Mock.Of<IUserAuthorizationService>(), Mock.Of<IImageSizeValidator>());
}

public static EventControllerBuilder CommonNullTestParams()
{
return new EventControllerBuilder(null, Mock.Of<IMediator>(), null,
Mock.Of<IUserAuthorizationService>(), Mock.Of<IImageSizeValidator>());
}

public static EventControllerBuilder AllNullParamsInstance()
{
return new EventControllerBuilder(null, null, null, null, null);
}

public EventControllerBuilder WithNullImageService()
{
_imageService = null;
return this;
}

public EventControllerBuilder WithNullValidateEventEditViewModels()
{
_validateEventEditViewModels = null;
return this;
}
public EventControllerBuilder WithMediator(IMediator mediatorObject)
{
_mediator = mediatorObject;
return this;
}
public EventControllerBuilder WithToday(Func<DateTime> func)
{
_dateTimeTodayDate = func;
return this;
}

public EventController Build()
{
var container = new EventController(_imageService, _mediator, _validateEventEditViewModels, _userAuthorizationService, _imageSizeValidator);
if (_dateTimeTodayDate != null)
{
container.DateTimeTodayDate = _dateTimeTodayDate;
}

return container;
}
}
}
Loading

0 comments on commit 8aeecd1

Please sign in to comment.