/// <summary>
 /// Creates the basic functionality for command handlers which handles commands for household data in the food waste domain.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of the repository which can access household data for the food waste domain.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of the common validations.</param>
 /// <param name="exceptionBuilder">Implementation of the builder which can build exceptions.</param>
 protected FoodWasteHouseholdDataCommandHandlerBase(IHouseholdDataRepository householdDataRepository, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder)
 {
     if (householdDataRepository == null)
     {
         throw new ArgumentNullException("householdDataRepository");
     }
     if (foodWasteObjectMapper == null)
     {
         throw new ArgumentNullException("foodWasteObjectMapper");
     }
     if (specification == null)
     {
         throw new ArgumentNullException("specification");
     }
     if (commonValidations == null)
     {
         throw new ArgumentNullException("commonValidations");
     }
     if (exceptionBuilder == null)
     {
         throw new ArgumentNullException("exceptionBuilder");
     }
     _householdDataRepository = householdDataRepository;
     _foodWasteObjectMapper   = foodWasteObjectMapper;
     _specification           = specification;
     _commonValidations       = commonValidations;
     _exceptionBuilder        = exceptionBuilder;
 }
 public void SetUp()
 {
     _householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
     _claimValueProviderMock      = MockRepository.GenerateMock <IClaimValueProvider>();
     _objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
     _specificationMock           = MockRepository.GenerateMock <ISpecification>();
     _commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
     _exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();
     _fixture = new Fixture();
 }
예제 #3
0
 public void SetUp()
 {
     _householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
     _claimValueProviderMock      = MockRepository.GenerateMock <IClaimValueProvider>();
     _objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
     _specificationMock           = MockRepository.GenerateMock <ISpecification>();
     _commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
     _domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
     _logicExecutorMock           = MockRepository.GenerateMock <ILogicExecutor>();
     _exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();
     _fixture = new Fixture();
     _random  = new Random(_fixture.Create <int>());
 }
 /// <summary>
 /// Creates a command handler which handles a command for updating a household to the current users household account.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of a repository which can access household data for the food waste domain.</param>
 /// <param name="claimValueProvider">Implementation of a provider which can resolve values from the current users claims.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of a common validations.</param>
 /// <param name="exceptionBuilder">Implementation of a builder which can build exceptions.</param>
 public HouseholdUpdateCommandHandler(IHouseholdDataRepository householdDataRepository, IClaimValueProvider claimValueProvider, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder)
     : base(householdDataRepository, claimValueProvider, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
 }
예제 #5
0
        /// <summary>
        /// Creates a command handler which handles a command for adding a household member to a given household on the current users household account.
        /// </summary>
        /// <param name="householdDataRepository">Implementation of a repository which can access household data for the food waste domain.</param>
        /// <param name="claimValueProvider">Implementation of a provider which can resolve values from the current users claims.</param>
        /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
        /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
        /// <param name="commonValidations">Implementation of common validations.</param>
        /// <param name="domainObjectValidations">Implementation of common validations used by domain objects in the food waste domain.</param>
        /// <param name="logicExecutor">Implementation of the logic executor which can execute basic logic.</param>
        /// <param name="exceptionBuilder">Implementation of a builder which can build exceptions.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="domainObjectValidations"/> or <paramref name="logicExecutor"/> is null.</exception>
        public HouseholdAddHouseholdMemberCommandHandler(IHouseholdDataRepository householdDataRepository, IClaimValueProvider claimValueProvider, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IDomainObjectValidations domainObjectValidations, ILogicExecutor logicExecutor, IExceptionBuilder exceptionBuilder)
            : base(householdDataRepository, claimValueProvider, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
        {
            ArgumentNullGuard.NotNull(domainObjectValidations, nameof(domainObjectValidations))
            .NotNull(logicExecutor, nameof(logicExecutor));

            _domainObjectValidations = domainObjectValidations;
            _logicExecutor           = logicExecutor;
        }
예제 #6
0
 /// <summary>
 /// Creates a command handler which handles a command for modifying a foreign key.
 /// </summary>
 /// <param name="systemDataRepository">Implementation of the repository which can access system data for the food waste domain.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of the common validations.</param>
 /// <param name="exceptionBuilder">Implementation of the builder which can build exceptions.</param>
 public ForeignKeyModifyCommandHandler(ISystemDataRepository systemDataRepository, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder)
     : base(systemDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
 }
 /// <summary>
 /// Creates a command handler which handles a command for adding a household to the current users household account.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of a repository which can access household data for the food waste domain.</param>
 /// <param name="claimValueProvider">Implementation of a provider which can resolve values from the current users claims.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of a common validations.</param>
 /// <param name="logicExecutor">Implementation of the logic executor which can execute basic logic.</param>
 /// <param name="exceptionBuilder">Implementation of a builder which can build exceptions.</param>
 public HouseholdAddCommandHandler(IHouseholdDataRepository householdDataRepository, IClaimValueProvider claimValueProvider, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, ILogicExecutor logicExecutor, IExceptionBuilder exceptionBuilder)
     : base(householdDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
     if (claimValueProvider == null)
     {
         throw new ArgumentNullException("claimValueProvider");
     }
     if (logicExecutor == null)
     {
         throw new ArgumentNullException("logicExecutor");
     }
     _claimValueProvider = claimValueProvider;
     _logicExecutor      = logicExecutor;
 }
예제 #8
0
 /// <summary>
 /// Creates the command handler which can handles the command for upgrading the membership on the current users household member account.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of a repository which can access household data for the food waste domain.</param>
 /// <param name="claimValueProvider">Implementation of a provider which can resolve values from the current users claims.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of a common validations.</param>
 /// <param name="domainObjectValidations">Implementaion of a common validations used by domain objects in the food waste domain.</param>
 /// <param name="exceptionBuilder">Implementation of a builder which can build exceptions.</param>
 public HouseholdMemberUpgradeMembershipCommandHandler(IHouseholdDataRepository householdDataRepository, IClaimValueProvider claimValueProvider, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IDomainObjectValidations domainObjectValidations, IExceptionBuilder exceptionBuilder)
     : base(householdDataRepository, claimValueProvider, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
     if (domainObjectValidations == null)
     {
         throw new ArgumentNullException("domainObjectValidations");
     }
     _domainObjectValidations = domainObjectValidations;
 }
 /// <summary>
 /// Creates an instance of the private class for testing the basic functionality for command handlers which handles commands for household data in the food waste domain.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of the repository which can access household data for the food waste domain.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of the common validations.</param>
 /// <param name="exceptionBuilder">Implementation of the builder which can build exceptions.</param>
 public MyFoodWasteHouseholdDataCommandHandler(IHouseholdDataRepository householdDataRepository, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder)
     : base(householdDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
 }
예제 #10
0
 /// <summary>
 /// Creates a command handler which handles a command for importing a food item from a given data provider.
 /// </summary>
 /// <param name="systemDataRepository">Implementation of the repository which can access system data for the food waste domain.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of the common validations.</param>
 /// <param name="exceptionBuilder">Implementation of the builder which can build exceptions.</param>
 /// <param name="logicExecutor">Implementation of the logic executor which can execute basic logic.</param>
 public FoodItemImportFromDataProviderCommandHandler(ISystemDataRepository systemDataRepository, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder, ILogicExecutor logicExecutor)
     : base(systemDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
     if (logicExecutor == null)
     {
         throw new ArgumentNullException("logicExecutor");
     }
     _logicExecutor = logicExecutor;
 }
예제 #11
0
        /// <summary>
        /// Creates the basic functionality which can handle a command for modifying some data on a household member.
        /// </summary>
        /// <param name="householdDataRepository">Implementation of a repository which can access household data for the food waste domain.</param>
        /// <param name="claimValueProvider">Implementation of a provider which can resolve values from the current users claims.</param>
        /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
        /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
        /// <param name="commonValidations">Implementation of a common validations.</param>
        /// <param name="exceptionBuilder">Implementation of a builder which can build exceptions.</param>
        protected HouseholdMemberDataModificationCommandHandlerBase(IHouseholdDataRepository householdDataRepository, IClaimValueProvider claimValueProvider, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IExceptionBuilder exceptionBuilder)
            : base(householdDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
        {
            ArgumentNullGuard.NotNull(claimValueProvider, nameof(claimValueProvider));

            ClaimValueProvider = claimValueProvider;
        }
예제 #12
0
 /// <summary>
 /// Creates a command handler which handles a command for adding a household member.
 /// </summary>
 /// <param name="householdDataRepository">Implementation of the repository which can access household data for the food waste domain.</param>
 /// <param name="foodWasteObjectMapper">Implementation of an object mapper which can map objects in the food waste domain.</param>
 /// <param name="specification">Implementation of a specification which encapsulates validation rules.</param>
 /// <param name="commonValidations">Implementation of the common validations.</param>
 /// <param name="domainObjectValidations">Implementation of the common validations used by domain objects in the food waste domain.</param>
 /// <param name="welcomeLetterDispatcher">Implementation of the dispatcher which can dispatch the welcome letter to a household member.</param>
 /// <param name="exceptionBuilder">Implementation of the builder which can build exceptions.</param>
 public HouseholdMemberAddCommandHandler(IHouseholdDataRepository householdDataRepository, IFoodWasteObjectMapper foodWasteObjectMapper, ISpecification specification, ICommonValidations commonValidations, IDomainObjectValidations domainObjectValidations, IWelcomeLetterDispatcher welcomeLetterDispatcher, IExceptionBuilder exceptionBuilder)
     : base(householdDataRepository, foodWasteObjectMapper, specification, commonValidations, exceptionBuilder)
 {
     if (domainObjectValidations == null)
     {
         throw new ArgumentNullException("domainObjectValidations");
     }
     if (welcomeLetterDispatcher == null)
     {
         throw new ArgumentNullException("welcomeLetterDispatcher");
     }
     _domainObjectValidations = domainObjectValidations;
     _welcomeLetterDispatcher = welcomeLetterDispatcher;
 }