public void Check_ActivityRespository_Update() { //given var descriptionText = "Given Description"; var descriptionTextChanged = "Given Description Modificada"; var project = ProjectReference.From(EntityId.From(1u), Description.From(descriptionText)); var id = EntityId.From(1u); var task = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var taskOptionsBuilder = new DbContextOptionsBuilder <ActivityDbContext>(); taskOptionsBuilder.UseSqlite("Data Source=todoagility_repo_update_test.db;"); var taskDbContext = new ActivityDbContext(taskOptionsBuilder.Options); var repTask = new ActivityRepository(taskDbContext); using var taskDbSession = new ActivityDbSession(taskDbContext, repTask); taskDbSession.Repository.Add(task); taskDbSession.SaveChanges(); //then var taskSaved = taskDbSession.Repository.Get(id); var updatetask = Activity.CombineWithPatch(taskSaved, Activity.Patch.FromDescription(Description.From(descriptionTextChanged))); taskDbSession.Repository.Add(updatetask); taskDbSession.SaveChanges(); var taskUpdated = taskDbSession.Repository.Get(id); Assert.NotEqual(taskUpdated, task); }
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); }
public void Check_ProjectActivityReferenceRespository_Update() { //given var descriptionText = "Given Description"; var projectId = EntityId.From(1u); var id = EntityId.From(1u); var project = Project.From(EntityId.From(1u), Description.From(descriptionText)); var projectReference = ProjectReference.From(projectId, Description.From(descriptionText)); var task = Activity.From(Description.From(descriptionText), id, projectId, ActivityStatus.From(1)); var projectOptionsBuilder = new DbContextOptionsBuilder <ProjectDbContext>(); projectOptionsBuilder.UseSqlite("Data Source=todoagility_project_update.db;"); var projectDbContext = new ProjectDbContext(projectOptionsBuilder.Options); var repProject = new ProjectRepository(projectDbContext); using var projectDbSession = new ProjectDbSession(projectDbContext, repProject); projectDbSession.Repository.Add(project); projectDbSession.SaveChanges(); //when var tasks = new List <EntityId> { task.Id }; var projectWithTasks = Project.CombineProjectAndActivities(project, tasks); var projectDbContext2 = new ProjectDbContext(projectOptionsBuilder.Options); var repProject2 = new ProjectRepository(projectDbContext2); //then using var projectDbSession2 = new DbSession <IProjectRepository>(projectDbContext2, repProject2); projectDbSession2.Repository.Add(projectWithTasks); projectDbSession2.SaveChanges(); var projectUpdated = projectDbSession2.Repository.Get(projectWithTasks.Id); Assert.True(projectUpdated.Activities.Count > 0); }