public async Task AddChange_And_SaveChanges_PublishesEvents() { TestChangeData changeData = new TestChangeData(); trackedChangeRecordConverter.ToRecord(null).ReturnsForAnyArgs(ci => { TrackedChange x = ci.ArgAt <TrackedChange>(0); return(new TrackedChangeRecord() { Id = x.Id, AggregateId = x.AggregateId, AggregateClassId = x.AggregateClassId, EntityId = x.EntityId, EntityClassId = x.EntityClassId }); }); TrackedChange tc = sut.AddChange(changeData, aggregateId, aggregateClassId, entityId, entityClassId); await sut.SaveChangesAsync(); eventBus.Received(1).PublishAsync(Arg.Is <IEventMessage <TrackedChangeAdded> >( x => x.Event.AggregateId == aggregateId && x.Event.EntityClassId == entityClassId && x.Event.EntityId == entityId && x.Event.TrackedChangeId == tc.Id)); }
public async Task AddChange_And_SaveChanges_AddsRecordToRepository() { TestChangeData changeData = new TestChangeData(); TrackedChangeRecord record = new TrackedChangeRecord(); trackedChangeRecordConverter.ToRecord(null).ReturnsForAnyArgs(record); sut.AddChange(changeData, aggregateId, aggregateClassId, entityId, entityClassId); await sut.SaveChangesAsync(); Assert.Equal(1, crudRepository.FindAll <TrackedChangeRecord>().Count(x => x == record)); }
public void AddChange_ReturnsChange() { TestChangeData changeData = new TestChangeData(); TrackedChange change = sut.AddChange(changeData, aggregateId, aggregateClassId, entityId, entityClassId); trackedChangeRecordConverter.ToRecord(null).ReturnsForAnyArgs( new TrackedChangeRecord()); Assert.Equal(aggregateId, change.AggregateId); Assert.Equal(aggregateClassId, change.AggregateClassId); Assert.Equal(entityId, change.EntityId); Assert.Equal(entityClassId, change.EntityClassId); Assert.Equal(changeData, change.ChangeData); Assert.Equal(actorContext.CurrentActorName, change.ActorName); Assert.Equal(FakeClock.Now, change.ChangeTime); }