Пример #1
0
        private static CustomResultInterceptor CreateFailInterceptor()
        {
            var interceptorResult = InterceptorResult.Fail(Message);
            var interceptor       = new CustomResultInterceptor(interceptorResult);

            return(interceptor);
        }
Пример #2
0
        private static CustomResultInterceptor CreateSuccessInterceptor()
        {
            var interceptorResult = InterceptorResult.Success();
            var interceptor       = new CustomResultInterceptor(interceptorResult);

            return(interceptor);
        }
Пример #3
0
 public InterceptorResult Apply(IDataContext dataContext, T eventArgs)
 {
     WasCalled = true;
     Thread.Sleep(1);
     CallTime = DateTime.Now;
     return(InterceptorResult.Succeeded());
 }
Пример #4
0
        public InterceptorResult Apply(IDataContext context, BeforeQuery eventArgs)
        {
            var query = eventArgs.Query as IQuery <T>;

            query.Where(_clauseToAppend);
            return(InterceptorResult.Succeeded());
        }
Пример #5
0
        public async Task Send_WithFailInterceptor_ThrowsInterceptorFailException()
        {
            var client = new MockRequester(new ApiConfig
            {
                SendInterceptors = new [] { new CustomResultSendInterceptor(InterceptorResult.Fail("fail!")) }
            }, "send", null).CreateClient();

            await Assert.ThrowsAsync <InterceptorFailException>(() => client.Send(6789, "address", FaucetPayClient.Bitcoin));
        }
Пример #6
0
 private void OnPostSave(object sender, PostSaveEventArgs e)
 {
     foreach (var postSaveInterceptor in _postSaveInterceptors.OrderBy(x => x.Priority))
     {
         InterceptorResult result = postSaveInterceptor.Execute(Context, e);
         if (result.ContinueExecution == false)
         {
             break;
         }
     }
 }
Пример #7
0
        public void IfFailure_FuncStringSuccess_DoesNotCallFunc()
        {
            var called = false;

            InterceptorResult.IfFailure(false, () =>
            {
                called = true;
                return(Message);
            });

            Assert.False(called);
        }
Пример #8
0
        public InterceptorResult Apply(IDataContext dataContext, BeforeSave eventArgs)
        {
            var efContext = dataContext as DbContext;

            if (efContext == null)
            {
                throw new InvalidOperationException(
                          "Entity Framework Interceptors must be used with Entity Framework Contexts");
            }

            string userName = _userNameService.GetCurrentUserName();

#if DEBUG
            var addedEntities    = efContext.ChangeTracker.Entries().Where(x => x.State == EntityState.Added).Where(e => e.Entity is IAuditableEntity).ToList();
            var modifiedEntities = efContext.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified).Where(e => e.Entity is IAuditableEntity).ToList();
            var deletedEntities  = efContext.ChangeTracker.Entries().Where(x => x.State == EntityState.Deleted).Where(e => e.Entity is IAuditableEntity).ToList();
#endif

            var modifiedDate = DateTime.Now;
            efContext.ChangeTracker.Entries().Where(x => x.State == EntityState.Added)
            .Where(e => e.Entity is IAuditableEntity)
            .ToList()
            .ForEach(e =>
            {
                var entity = e.Entity as IAuditableEntity;
                if (entity != null)
                {
                    entity.CreatedDate  = modifiedDate;
                    entity.ModifiedDate = modifiedDate;
                    entity.CreatedBy    = userName;
                    entity.ModifiedBy   = userName;
                }
            });

            efContext.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified)
            .Where(e => e.Entity is IAuditableEntity)
            .ToList()
            .ForEach(e =>
            {
                var entity = e.Entity as IAuditableEntity;
                if (entity != null)
                {
                    entity.ModifiedDate = modifiedDate;
                    entity.ModifiedBy   = userName;
                }
            });
            efContext.ChangeTracker.DetectChanges();
            return(InterceptorResult.Succeeded());
        }
        public void WhenCommitIsCalledPreSaveAndPostSaveInterceptorsAreCalled()
        {
            //arrange
            var mockPreSave = MockRepository.GenerateMock <IInterceptor <PreSaveEventArgs> >();

            mockPreSave.Expect(x => x.Execute(Arg <IDataContext> .Is.Same(target), Arg <PreSaveEventArgs> .Is.Anything)).
            Return(InterceptorResult.Succeeded());
            mockPreSave.Expect(x => x.Priority).Return(1);
            target.EventManager.Register(mockPreSave);

            var mockPostSave = MockRepository.GenerateMock <IInterceptor <PostSaveEventArgs> >();

            mockPostSave.Expect(x => x.Execute(Arg <IDataContext> .Is.Same(target), Arg <PostSaveEventArgs> .Is.Anything)).
            Return(InterceptorResult.Succeeded());
            mockPostSave.Expect(x => x.Priority).Return(1);
            target.EventManager.Register(mockPostSave);

            //Act
            target.Commit();

            //Assert
            mockPreSave.VerifyAllExpectations();
            mockPostSave.VerifyAllExpectations();
        }
Пример #10
0
        public void IfFailure_FuncStringFail_GivesMessage()
        {
            var result = InterceptorResult.IfFailure(true, () => Message);

            Assert.Equal(Message, result.Message);
        }
Пример #11
0
        public void IfFailure_FuncStringFail_GivesFail()
        {
            var result = InterceptorResult.IfFailure(true, () => Message);

            Assert.False(result.IsSuccess);
        }
 public CustomResultInterceptor(InterceptorResult result)
 {
     Result = result;
 }
Пример #13
0
        public void IfFailure_FuncStringSuccess_GivesSuccess()
        {
            var result = InterceptorResult.IfFailure(false, () => Message);

            Assert.True(result.IsSuccess);
        }
Пример #14
0
        public void Success_HasNoMessage()
        {
            var result = InterceptorResult.Success();

            Assert.Null(result.Message);
        }
Пример #15
0
        public void Success_HasSuccessTrue()
        {
            var result = InterceptorResult.Success();

            Assert.True(result.IsSuccess);
        }
Пример #16
0
        public void Fail_HasMessage()
        {
            var result = InterceptorResult.Fail(Message);

            Assert.Equal(Message, result.Message);
        }
Пример #17
0
        public void Fail_HasSuccessFalse()
        {
            var result = InterceptorResult.Fail(Message);

            Assert.False(result.IsSuccess);
        }
 public CustomResultSendInterceptor(InterceptorResult result) : base(result)
 {
 }