Beispiel #1
0
        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");
        }
Beispiel #2
0
        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");
        }