public async Task Handle_RemoveCalendarEvent_WhenItExists() { var calendarEvent = new CalendarEvent( "Music fetival", DateTimeOffset.Now.ToUnixTimeSeconds(), "Oosterpark, Amsterdam ", "Rafael Caviquioli" ); calendarEvent.AddMember("Aleida"); _context.Add(calendarEvent); await _context.SaveChangesAsync(); _context.DetachAllEntities(); var command = new RemoveCalendarEventCommand(calendarEvent.Id); var handler = new RemoveCalendarEventCommandHandler(_calendarEventRepository); await handler.Handle(command, CancellationToken.None); var calendarEventExpected = await _context.CalendarEvents .FirstOrDefaultAsync(ce => ce.Id == calendarEvent.Id); calendarEventExpected .Should().BeNull("Because calendar event was removed from database"); }
public async Task Handle_ShouldInsertNewEventInDatabase_WhenAllPropertiesWasFilled() { var command = new AddNewCalendarEventCommand() { Name = "Music fetival", Location = "Oosterpark, Amsterdam ", Time = DateTimeOffset.Now.ToUnixTimeSeconds(), EventOrganizer = "Rafael Caviquioli", Members = new [] { "Aleida", "Angelique", "Vans" } }; var handler = new AddNewCalendarEventCommandHandler(_calendarEventRepository); var calendarEventId = await handler.Handle(command, CancellationToken.None); _context.DetachAllEntities(); var calendarEvent = await _context.CalendarEvents .Include(ce => ce.Members) .FirstOrDefaultAsync(ce => ce.Id == calendarEventId); calendarEvent.Name.Should().Be(command.Name); calendarEvent.Location.Should().Be(command.Location); calendarEvent.Time.Should().Be(command.Time); calendarEvent.Organizer.Should().Be(command.EventOrganizer); calendarEvent.Members.Should().HaveCount(3); var members = calendarEvent.Members.ToList(); members[0].Name.Should().Be(command.Members[0]); members[1].Name.Should().Be(command.Members[1]); members[2].Name.Should().Be(command.Members[2]); }
public async Task Handle_ShouldEditCalendarEventDataInDatabase() { var calendarEvent = new CalendarEvent( "Music fetival", DateTimeOffset.Now.ToUnixTimeSeconds(), "Oosterpark, Amsterdam ", "Rafael Caviquioli" ); calendarEvent.AddMember("Aleida"); calendarEvent.AddMember("Vans Martin"); _context.Add(calendarEvent); await _context.SaveChangesAsync(); _context.DetachAllEntities(); var command = new EditCalendarEventCommand() { Id = calendarEvent.Id, Name = "Football Challenge", Time = DateTimeOffset.Now.AddDays(10).ToUnixTimeSeconds(), Location = "Brussels, Belgian", EventOrganizer = "Elisabeth", Members = new string[] { "Gabriel", "Anna", "Aleida", "Felipe" } }; var handler = new EditCalendarEventCommandHandler(_calendarEventRepository); await handler.Handle(command, CancellationToken.None); var updatedCalendarEvent = await _context.CalendarEvents .Include(ce => ce.Members) .FirstOrDefaultAsync(ce => ce.Id == calendarEvent.Id); updatedCalendarEvent.Name.Should().Be(command.Name); updatedCalendarEvent.Location.Should().Be(command.Location); updatedCalendarEvent.Time.Should().Be(command.Time); updatedCalendarEvent.Organizer.Should().Be(command.EventOrganizer); updatedCalendarEvent.Members.Should().HaveCount(4); var members = updatedCalendarEvent.Members .Select(m => m.Name) .ToList(); members.Should().Contain("Gabriel"); members.Should().Contain("Anna"); members.Should().Contain("Aleida"); members.Should().Contain("Felipe"); members.Should().NotContain("Vans Martin"); }