public void Check_DomainEvents_ProjectAdded_Raise() { //given //existing project var project = Project.From(EntityId.From(1u), Description.From("descriptionText")); var taskOptionsBuilder = new DbContextOptionsBuilder <ActivityDbContext>(); taskOptionsBuilder.UseSqlite("Data Source=todoagility_projectAdded_test.db;"); var taskDbContext = new ActivityDbContext(taskOptionsBuilder.Options); var repTask = new ActivityRepository(taskDbContext); using var taskDbSession = new DbSession <IActivityRepository>(taskDbContext, repTask); var handlerActivityAdded = new ProjectAddedHandler(taskDbSession); var dispatcher = new DomainEventDispatcher(); dispatcher.Subscribe(typeof(ProjectAddedEvent).FullName, handlerActivityAdded); //when dispatcher.Publish(ProjectAddedEvent.For(project)); //then var projectId = EntityId.From(1u); var proj = repTask.GetProject(projectId); Assert.NotNull(proj); }
public void Check_DomainEvents_ActivityAdded_Raise() { //given //existing project var project = Project.From(EntityId.From(1u), Description.From("descriptionText")); //a activity it is attached to it var activity = Activity.From(Description.From("activity to do"), EntityId.From(1u), EntityId.From(1u), ActivityStatus.From(1)); var projectOptionsBuilder = new DbContextOptionsBuilder <ProjectDbContext>(); projectOptionsBuilder.UseSqlite("Data Source=todoagility_proj_activity_reference.db;"); var projectDbContext = new ProjectDbContext(projectOptionsBuilder.Options); var repProject = new ProjectRepository(projectDbContext); using var projectDbSession = new DbSession <IProjectRepository>(projectDbContext, repProject); repProject.Add(project); projectDbSession.SaveChanges(); var handlerActivityAdded = new ActivityAddedHandler(projectDbSession); var dispatcher = new DomainEventDispatcher(); dispatcher.Subscribe(typeof(ActivityAddedEvent).FullName, handlerActivityAdded); //when dispatcher.Publish(ActivityAddedEvent.For(activity)); //then var proj = repProject.Get(EntityId.From(1u)); Assert.True(proj.Activities.Count > 0); }