Beispiel #1
0
 public virtual ServiceReceiptResponse ForeignKeyDelete(ForeignKeyDeleteCommand command)
 {
     if (command == null)
     {
         throw new ArgumentNullException(nameof(command));
     }
     try
     {
         return(_commandBus.Publish <ForeignKeyDeleteCommand, ServiceReceiptResponse>(command));
     }
     catch (Exception ex)
     {
         throw _foodWasteFaultExceptionBuilder.Build(ex, SoapNamespaces.FoodWasteSystemDataServiceName, MethodBase.GetCurrentMethod());
     }
 }
Beispiel #2
0
        public void TestThatExecuteCallsIsNotNullForForeignKeyOnCommonValidations()
        {
            var fixture = new Fixture();
            var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>();
            var exceptionBuilderMock  = MockRepository.GenerateMock <IExceptionBuilder>();

            var foodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock();
            // ReSharper disable PossibleInvalidOperationException
            var foreignKeyMock = DomainObjectMockBuilder.BuildForeignKeyMock(foodGroupMock.Identifier.Value, foodGroupMock.GetType());
            // ReSharper restore PossibleInvalidOperationException
            var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>();

            systemDataRepositoryMock.Stub(m => m.Get <IForeignKey>(Arg <Guid> .Is.Anything))
            .Return(foreignKeyMock)
            .Repeat.Any();

            var specificationMock = MockRepository.GenerateMock <ISpecification>();

            specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <Exception> .Is.Anything))
            .WhenCalled(e =>
            {
                var func = (Func <bool>)e.Arguments.ElementAt(0);
                func.Invoke();
            })
            .Return(specificationMock)
            .Repeat.Any();

            var foodWasteObjectMapperMock = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            foodWasteObjectMapperMock.Stub(m => m.Map <IIdentifiable, ServiceReceiptResponse>(Arg <IIdentifiable> .Is.Anything, Arg <CultureInfo> .Is.Anything))
            .Return(fixture.Create <ServiceReceiptResponse>())
            .Repeat.Any();

            var foreignKeyDeleteCommandHandler = new ForeignKeyDeleteCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock);

            Assert.That(foreignKeyDeleteCommandHandler, Is.Not.Null);

            var foreignKeyDeleteCommand = new ForeignKeyDeleteCommand
            {
                ForeignKeyIdentifier = Guid.NewGuid()
            };

            foreignKeyDeleteCommandHandler.Execute(foreignKeyDeleteCommand);

            commonValidationsMock.AssertWasCalled(m => m.IsNotNull(Arg <IForeignKey> .Is.Equal(foreignKeyMock)));
        }
Beispiel #3
0
        /// <summary>
        /// Executes functionality which delete a foreign key for a domain object.
        /// </summary>
        /// <param name="foreignKey">Foreign key to delete.</param>
        /// <returns>Identifier for the deleted foreign key.</returns>
        public virtual Guid ForeignKeyDelete(IForeignKey foreignKey)
        {
            if (foreignKey == null)
            {
                throw new ArgumentNullException("foreignKey");
            }
            if (foreignKey.Identifier.HasValue == false)
            {
                throw new IntranetSystemException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, foreignKey.Identifier, "Identifier"));
            }
            var command = new ForeignKeyDeleteCommand
            {
                ForeignKeyIdentifier = foreignKey.Identifier.Value
            };
            var serviceReceipt = Execute <ForeignKeyDeleteCommand, ServiceReceiptResponse>(command);

            return(serviceReceipt.Identifier.HasValue ? serviceReceipt.Identifier.Value : default(Guid));
        }
Beispiel #4
0
        public void TestThatExecuteReturnsServiceReceiptFromMapOnFoodWasteObjectMapper()
        {
            var fixture = new Fixture();
            var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>();
            var exceptionBuilderMock  = MockRepository.GenerateMock <IExceptionBuilder>();

            var foodGroupMock            = DomainObjectMockBuilder.BuildFoodGroupMock();
            var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>();

            systemDataRepositoryMock.Stub(m => m.Get <IForeignKey>(Arg <Guid> .Is.Anything))
            // ReSharper disable PossibleInvalidOperationException
            .Return(DomainObjectMockBuilder.BuildForeignKeyMock(foodGroupMock.Identifier.Value, foodGroupMock.GetType()))
            // ReSharper restore PossibleInvalidOperationException
            .Repeat.Any();

            var specificationMock = MockRepository.GenerateMock <ISpecification>();

            specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.Anything, Arg <Exception> .Is.Anything))
            .Return(specificationMock)
            .Repeat.Any();

            var serviceReceipt            = fixture.Create <ServiceReceiptResponse>();
            var foodWasteObjectMapperMock = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            foodWasteObjectMapperMock.Stub(m => m.Map <IIdentifiable, ServiceReceiptResponse>(Arg <IIdentifiable> .Is.Anything, Arg <CultureInfo> .Is.Anything))
            .Return(serviceReceipt)
            .Repeat.Any();

            var foreignKeyDeleteCommandHandler = new ForeignKeyDeleteCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock);

            Assert.That(foreignKeyDeleteCommandHandler, Is.Not.Null);

            var foreignKeyDeleteCommand = new ForeignKeyDeleteCommand
            {
                ForeignKeyIdentifier = Guid.NewGuid()
            };

            var result = foreignKeyDeleteCommandHandler.Execute(foreignKeyDeleteCommand);

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(serviceReceipt));
        }