-
Notifications
You must be signed in to change notification settings - Fork 630
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2282 from Paul-Hadfield/master
Brings in builder pattern for #2263
- Loading branch information
Showing
5 changed files
with
381 additions
and
166 deletions.
There are no files selected for viewing
64 changes: 64 additions & 0 deletions
64
...-App/AllReady.UnitTest/Areas/Admin/Controllers/Builders/CampaignAdminControllerBuilder.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
} | ||
} |
84 changes: 84 additions & 0 deletions
84
...yApp/Web-App/AllReady.UnitTest/Areas/Admin/Controllers/Builders/EventControllerBuilder.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
} | ||
} |
Oops, something went wrong.