public void ShouldRunPostSaveHooks_WhenExceptionOccured_OnSaveAsync() { var dbContext = new DbHookContextStub(); var hook1 = Substitute.For <IDbHook>(); var hook2 = Substitute.For <IDbHook>(); dbContext.AddPostSaveHook(hook1); dbContext.AddPostSaveHook(hook2); var sameKey = Guid.NewGuid(); dbContext.Foos.Add(new FooEntityStub() { Id = sameKey }); dbContext.Foos.Add(new FooEntityStub() { Id = sameKey }); try { dbContext.SaveChangesAsync().Wait(); } catch (AggregateException) {} hook1.Received(2).HookEntry(Arg.Any <IDbEntityEntry>()); hook2.Received(2).HookEntry(Arg.Any <IDbEntityEntry>()); }
public void PostSaveHookShouldReflectPreSaveEntityState() { var dbContext = new DbHookContextStub(); var hook1 = Substitute.For <IDbHook>(); dbContext.AddPostSaveHook(hook1); var foo = new FooEntityStub(); dbContext.Foos.Add(foo); dbContext.SaveChanges(); hook1.Received(1).HookEntry(Arg.Is <IDbEntityEntry>(entry => entry.State == EntityState.Added)); }
public void ShouldRunPostSaveHooks_OnSave() { var dbContext = new DbHookContextStub(); var hook1 = Substitute.For <IDbHook>(); var hook2 = Substitute.For <IDbHook>(); dbContext.AddPostSaveHook(hook1); dbContext.AddPostSaveHook(hook2); var foo = new FooEntityStub(); dbContext.Foos.Add(foo); dbContext.SaveChanges(); hook1.Received(1).HookEntry(Arg.Any <IDbEntityEntry>()); hook2.Received(1).HookEntry(Arg.Any <IDbEntityEntry>()); }
public void ShouldNotExecutePostSaveHooks_WhenCanceled_OnSaveChangesAsync() { var dbContext = new DbHookContextStub(); var hook1 = Substitute.For <IDbHook>(); dbContext.AddPostSaveHook(hook1); var foo = new FooEntityStub(); dbContext.Foos.Add(foo); _cancellationTokenSource.Cancel(); try { dbContext.SaveChangesAsync(_cancellationTokenSource.Token).Wait(); } catch (AggregateException) { } hook1.DidNotReceive().HookEntry(Arg.Any <IDbEntityEntry>()); }
protected override IDbContext SetupDbContext() { return(_dbHookContext = new DbHookContextStub()); }
public void Setup() { DbHookContextStub.ResetConnections(); }
public void Setup() { DbHookContextStub.ResetConnections(); _cancellationTokenSource = new CancellationTokenSource(); }