public void TestThatExecuteCallsInsertOnSystemDataRepository() { var fixture = new Fixture(); var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>(); var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>(); var translationInfoMock = DomainObjectMockBuilder.BuildTranslationInfoMock(); var translationOfIdentifier = Guid.NewGuid(); var translationValue = fixture.Create <string>(); var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>(); systemDataRepositoryMock.Stub(m => m.Get <ITranslationInfo>(Arg <Guid> .Is.Anything)) .Return(translationInfoMock) .Repeat.Any(); systemDataRepositoryMock.Stub(m => m.Insert(Arg <ITranslation> .Is.NotNull)) .WhenCalled(e => { var translation = (ITranslation)e.Arguments.ElementAt(0); Assert.That(translation, Is.Not.Null); Assert.That(translation.Identifier.HasValue, Is.False); Assert.That(translation.TranslationOfIdentifier, Is.EqualTo(translationOfIdentifier)); Assert.That(translation.TranslationInfo, Is.Not.Null); Assert.That(translation.TranslationInfo, Is.EqualTo(translationInfoMock)); Assert.That(translation.Value, Is.Not.Null); Assert.That(translation.Value, Is.Not.Empty); Assert.That(translation.Value, Is.EqualTo(translationValue)); }) .Return(DomainObjectMockBuilder.BuildTranslationMock(Guid.NewGuid())) .Repeat.Any(); var specificationMock = MockRepository.GenerateMock <ISpecification>(); specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <Exception> .Is.Anything)) .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 translationAddCommand = fixture.Build <TranslationAddCommand>() .With(m => m.TranslationInfoIdentifier, Guid.NewGuid()) .With(m => m.TranslationOfIdentifier, translationOfIdentifier) .With(m => m.TranslationValue, translationValue) .Create(); var translationAddCommandHandler = new TranslationAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(translationAddCommandHandler, Is.Not.Null); translationAddCommandHandler.Execute(translationAddCommand); systemDataRepositoryMock.AssertWasCalled(m => m.Insert(Arg <ITranslation> .Is.NotNull)); }
public void TestThatExecuteReturnsServiceReceiptFromMapOnFoodWasteObjectMapper() { var fixture = new Fixture(); var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>(); var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>(); var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>(); systemDataRepositoryMock.Stub(m => m.Get <ITranslationInfo>(Arg <Guid> .Is.Anything)) .Return(DomainObjectMockBuilder.BuildTranslationInfoMock()) .Repeat.Any(); systemDataRepositoryMock.Stub(m => m.Insert(Arg <ITranslation> .Is.NotNull)) .Return(DomainObjectMockBuilder.BuildTranslationMock(Guid.NewGuid())) .Repeat.Any(); var specificationMock = MockRepository.GenerateMock <ISpecification>(); specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <Exception> .Is.Anything)) .Return(specificationMock) .Repeat.Any(); var serviceReceipt = fixture.Build <ServiceReceiptResponse>() .With(m => m.Identifier, Guid.NewGuid()) .With(m => m.EventDate, DateTime.Now) .Create(); 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 translationAddCommand = fixture.Build <TranslationAddCommand>() .With(m => m.TranslationInfoIdentifier, Guid.NewGuid()) .With(m => m.TranslationOfIdentifier, Guid.NewGuid()) .With(m => m.TranslationValue, fixture.Create <string>()) .Create(); var translationAddCommandHandler = new TranslationAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(translationAddCommandHandler, Is.Not.Null); var result = translationAddCommandHandler.Execute(translationAddCommand); Assert.That(result, Is.Not.Null); Assert.That(result, Is.EqualTo(serviceReceipt)); }
public void TestThatExecuteThrowsArgumentNullExceptionIfTranslationAddCommandIsNull() { 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 translationAddCommandHandler = new TranslationAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(translationAddCommandHandler, Is.Not.Null); var exception = Assert.Throws <ArgumentNullException>(() => translationAddCommandHandler.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); }
public void TestThatExecuteCallsIsSatisfiedByOnSpecification3Times() { var fixture = new Fixture(); var commonValidationsMock = MockRepository.GenerateMock <ICommonValidations>(); var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>(); var systemDataRepositoryMock = MockRepository.GenerateMock <ISystemDataRepository>(); systemDataRepositoryMock.Stub(m => m.Get <ITranslationInfo>(Arg <Guid> .Is.Anything)) .Return(DomainObjectMockBuilder.BuildTranslationInfoMock()) .Repeat.Any(); systemDataRepositoryMock.Stub(m => m.Insert(Arg <ITranslation> .Is.Anything)) .Return(DomainObjectMockBuilder.BuildTranslationMock(Guid.NewGuid())) .Repeat.Any(); var specificationMock = MockRepository.GenerateMock <ISpecification>(); specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <Exception> .Is.Anything)) .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 translationAddCommand = fixture.Build <TranslationAddCommand>() .With(m => m.TranslationInfoIdentifier, Guid.NewGuid()) .With(m => m.TranslationOfIdentifier, Guid.NewGuid()) .With(m => m.TranslationValue, fixture.Create <string>()) .Create(); var translationAddCommandHandler = new TranslationAddCommandHandler(systemDataRepositoryMock, foodWasteObjectMapperMock, specificationMock, commonValidationsMock, exceptionBuilderMock); Assert.That(translationAddCommandHandler, Is.Not.Null); translationAddCommandHandler.Execute(translationAddCommand); specificationMock.AssertWasCalled(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <IntranetBusinessException> .Is.TypeOf), opt => opt.Repeat.Times(3)); }