Beispiel #1
0
        public void Establish()
        {
            _taskToBeEdited = new Task("My Task", "My Task Description", DateTime.Now);
            _tasksDAO       = new Tasks.Adapters.DataAccess.TasksDAO();
            _tasksDAO.Clear();
            _taskToBeEdited = _tasksDAO.Add(_taskToBeEdited);

            _cmd = new EditTaskCommand(_taskToBeEdited.Id, NEW_TASK_NAME, NEW_TASK_DESCRIPTION, _NEW_TIME);

            s_commandProcessor = A.Fake <IAmACommandProcessor>();

            _handler = new EditTaskCommandHandler(_tasksDAO, s_commandProcessor);
        }
        public async Task CreateNewTaskSuccessfully()
        {
            var @event = new Event {
                Id = 1, IsLimitVolunteers = true, IsAllowWaitList = false
            };
            var organization = new Organization {
                Id = 2
            };

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Name                       = "TaskName",
                    Description                = "TaskDescription",
                    EventId                    = @event.Id,
                    OrganizationId             = organization.Id,
                    TimeZoneId                 = "Central Standard Time",
                    NumberOfVolunteersRequired = 5,
                    RequiredSkills             = new List <TaskSkill> {
                        new TaskSkill {
                            SkillId = 3, Skill = new Skill {
                                Id = 3, Name = "SkillName", Description = "SkillDescription"
                            }
                        }
                    }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.SaveChanges();

            var sut    = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);

            var result = Context.Tasks.Single(x => x.Id == taskId);

            Assert.True(taskId > 0);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
        public async Task CreateNewTaskSuccessfully()
        {
            var @event = new Event { Id = 1, IsLimitVolunteers = true, IsAllowWaitList = false };
            var organization = new Organization { Id = 2 };

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Name = "TaskName",
                    Description = "TaskDescription",
                    EventId = @event.Id,
                    OrganizationId = organization.Id,
                    TimeZoneId = "Central Standard Time",
                    NumberOfVolunteersRequired = 5,
                    RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 3, Skill = new Skill { Id = 3, Name = "SkillName", Description = "SkillDescription" } } }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.SaveChanges();

            var sut = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);
            var result = Context.Tasks.Single(x => x.Id == taskId);

            Assert.True(taskId > 0);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
        public async Task UpdateExistingTaskSuccessfully()
        {
            var @event = new Event {
                Id = 3
            };
            var organization = new Organization {
                Id = 4
            };
            var @task = new AllReadyTask
            {
                Id           = 2,
                Name         = "TaskName",
                Description  = "TaskDescription",
                Event        = @event,
                Organization = organization,
                NumberOfVolunteersRequired = 5,
                RequiredSkills             = new List <TaskSkill> {
                    new TaskSkill {
                        SkillId = 5, Skill = new Skill {
                            Id = 5, Name = "SkillName", Description = "SkillDescription"
                        }
                    }
                }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.Tasks.Add(@task);
            Context.SaveChanges();

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Id                         = @task.Id,
                    Name                       = "TaskNameUpdated",
                    Description                = "TaskDescriptionUpdated",
                    EventId                    = @event.Id,
                    OrganizationId             = organization.Id,
                    TimeZoneId                 = "Central Standard Time",
                    StartDateTime              = DateTimeOffset.Now.AddDays(1),
                    EndDateTime                = DateTimeOffset.Now.AddDays(2),
                    NumberOfVolunteersRequired = 6,
                    RequiredSkills             = new List <TaskSkill> {
                        new TaskSkill {
                            SkillId = 6, Skill = new Skill {
                                Id = 6, Name = "SkillNameOnMessage", Description = "SkillDescriptionOnMessage"
                            }
                        }
                    }
                }
            };

            var sut    = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);

            var result = Context.Tasks.Single(x => x.Id == taskId);

            //can't test start and end date as they're tied to static classes
            Assert.Equal(taskId, message.Task.Id);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
Beispiel #5
0
 public void ModelIsCreated()
 {
     var sut = new EditTaskCommandHandler(Context);
     int actual = sut.Handle(new EditTaskCommand {Task = new TaskEditModel()});
     Assert.Equal(1, actual);
 }
        public async Task UpdateExistingTaskSuccessfully()
        {
            var @event = new Event { Id = 3 };
            var organization = new Organization { Id = 4 };
            var @task = new AllReadyTask
            {
                Id = 2,
                Name = "TaskName",
                Description = "TaskDescription",
                Event = @event,
                Organization = organization,
                NumberOfVolunteersRequired = 5,
                RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 5, Skill = new Skill { Id = 5, Name = "SkillName", Description = "SkillDescription" } } }
            };

            Context.Database.EnsureDeleted();
            Context.Events.Add(@event);
            Context.Organizations.Add(organization);
            Context.Tasks.Add(@task);
            Context.SaveChanges();

            var message = new EditTaskCommand
            {
                Task = new EditViewModel
                {
                    Id = @task.Id,
                    Name = "TaskNameUpdated",
                    Description = "TaskDescriptionUpdated",
                    EventId = @event.Id,
                    OrganizationId = organization.Id,
                    TimeZoneId = "Central Standard Time",
                    StartDateTime = DateTimeOffset.Now.AddDays(1),
                    EndDateTime = DateTimeOffset.Now.AddDays(2),
                    NumberOfVolunteersRequired = 6,
                    RequiredSkills = new List<TaskSkill> { new TaskSkill { SkillId = 6, Skill = new Skill { Id = 6, Name = "SkillNameOnMessage", Description = "SkillDescriptionOnMessage" } } }
                }
            };

            var sut = new EditTaskCommandHandler(Context);
            var taskId = await sut.Handle(message);
            var result = Context.Tasks.Single(x => x.Id == taskId);

            //can't test start and end date as they're tied to static classes
            Assert.Equal(taskId, message.Task.Id);
            Assert.Equal(result.Name, message.Task.Name);
            Assert.Equal(result.Description, message.Task.Description);
            Assert.Equal(result.Event, @event);
            Assert.Equal(result.Organization, organization);
            Assert.Equal(result.NumberOfVolunteersRequired, message.Task.NumberOfVolunteersRequired);
            Assert.Equal(result.IsLimitVolunteers, @event.IsLimitVolunteers);
            Assert.Equal(result.IsAllowWaitList, @event.IsAllowWaitList);
            Assert.Equal(result.RequiredSkills, message.Task.RequiredSkills);
        }
Beispiel #7
0
 public void ModelIsCreated()
 {
     var sut = new EditTaskCommandHandler(Context);
     int actual = sut.Handle(new EditTaskCommand { Task = new TaskEditModel { TimeZoneId = "Eastern Standard Time"} });            
     Assert.Equal(1, actual);
 }