public void TestThatExecuteCallsIsNotNullForDataProviderOnCommonValidations() { var fixture = new Fixture(); var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>(); var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>(); var dataProviderMock = DomainObjectMockBuilder.BuildDataProviderMock(); var foodGroupMock = DomainObjectMockBuilder.BuildFoodGroupMock(); var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>(); systemDataRepositoryMock.Stub(m => m.Get <IDataProvider>(Arg <Guid> .Is.Anything)) .Return(dataProviderMock) .Repeat.Any(); systemDataRepositoryMock.Stub(m => m.Get <IFoodGroup>(Arg <Guid> .Is.Anything)) .Return(foodGroupMock) .Repeat.Any(); systemDataRepositoryMock.Stub(m => m.Insert(Arg <IForeignKey> .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.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 foreignKeyAddCommand = fixture.Build <ForeignKeyAddCommand>() .With(m => m.DataProviderIdentifier, Guid.NewGuid()) .With(m => m.ForeignKeyForIdentifier, Guid.NewGuid()) .With(m => m.ForeignKeyValue, fixture.Create <string>()) .Create(); var foreignKeyAddCommandHandler = new ForeignKeyAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(foreignKeyAddCommandHandler, Is.Not.Null); foreignKeyAddCommandHandler.Execute(foreignKeyAddCommand); commonValidationsMock.AssertWasCalled(m => m.IsNotNull(Arg <IDataProvider> .Is.Equal(dataProviderMock))); }
public void TestThatExecuteThrowsArgumentNullExceptionIfForeignKeyAddCommandIsNull() { var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>(); var foodWasteObjectMapperMock = MockRepository.GenerateMock <IFoodWasteObjectMapper>(); var specificationMock = MockRepository.GenerateMock <ISpecification>(); var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>(); var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>(); var foreignKeyAddCommandHandler = new ForeignKeyAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(foreignKeyAddCommandHandler, Is.Not.Null); var exception = Assert.Throws <ArgumentNullException>(() => foreignKeyAddCommandHandler.Execute(null)); Assert.That(exception, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Empty); Assert.That(exception.ParamName, Is.EqualTo("command")); Assert.That(exception.InnerException, Is.Null); }