protected MeetingTestData CreateMeetingTestData(MeetingTestDataOptions options)
        {
            var proposalMemberId = options.CreatorId ?? new MemberId(Guid.NewGuid());
            var meetingProposal  = MeetingGroupProposal.ProposeNew(
                "name",
                "description",
                MeetingGroupLocation.CreateNew("Warsaw", "PL"),
                proposalMemberId);

            meetingProposal.Accept();

            var meetingGroup = meetingProposal.CreateMeetingGroup();

            meetingGroup.SetExpirationDate(DateTime.Now.AddDays(1));

            var meetingTerm = options.MeetingTerm ??
                              MeetingTerm.CreateNewBetweenDates(DateTime.UtcNow.AddDays(1), DateTime.UtcNow.AddDays(2));

            var rsvpTerm = options.RvspTerm ?? Term.NoTerm;
            var meeting  = meetingGroup.CreateMeeting(
                "title",
                meetingTerm,
                "description",
                MeetingLocation.CreateNew("Name", "Address", "PostalCode", "City"),
                options.AttendeesLimit,
                options.GuestsLimit,
                rsvpTerm,
                MoneyValue.Undefined,
                new List <MemberId>(),
                proposalMemberId);

            foreach (var attendee in options.Attendees)
            {
                meetingGroup.JoinToGroupMember(attendee);
                meeting.AddAttendee(meetingGroup, attendee, 0);
            }

            var meetingCommentingConfiguration = meeting.CreateCommentingConfiguration();

            if (options.IsMeetingCommentingEnabled)
            {
                meetingCommentingConfiguration.EnableCommenting(proposalMemberId, meetingGroup);
            }
            else
            {
                meetingCommentingConfiguration.DisableCommenting(proposalMemberId, meetingGroup);
            }

            DomainEventsTestHelper.ClearAllDomainEvents(meetingGroup);

            return(new MeetingTestData(meetingGroup, meeting, meetingCommentingConfiguration));
        }
        private static MeetingGroup CreateMeetingGroup(MemberId definedProposalMemberId = null)
        {
            var proposalMemberId = definedProposalMemberId ?? new MemberId(Guid.NewGuid());
            var meetingProposal  = MeetingGroupProposal.ProposeNew(
                "name", "description",
                new MeetingGroupLocation("Warsaw", "PL"), proposalMemberId);

            meetingProposal.Accept();

            var meetingGroup = meetingProposal.CreateMeetingGroup();

            DomainEventsTestHelper.ClearAllDomainEvents(meetingGroup);

            return(meetingGroup);
        }
示例#3
0
        protected UserTestData CreateUserTestData(UserTestDataOptions options)
        {
            var usersCounter = Substitute.For <IUsersCounter>();

            options.Password ??= "password123";

            var userRegistration =
                UserRegistration.RegisterNewUser(
                    "login", PasswordManager.HashPassword(options.Password), "test@email",
                    options.FirstName, options.LastName, usersCounter);

            userRegistration.Confirm();
            var user = userRegistration.CreateUser();

            DomainEventsTestHelper.ClearAllDomainEvents(user);

            return(new UserTestData(user));
        }
        public void SetHostRole_WhenSettingMemberIsMeetingHost_IsSuccessful()
        {
            var creatorId       = new MemberId(Guid.NewGuid());
            var meetingTestData = CreateMeetingTestData(new MeetingTestDataOptions
            {
                CreatorId = creatorId
            });
            var newOrganizerId  = new MemberId(Guid.NewGuid());
            var settingMemberId = new MemberId(Guid.NewGuid());

            meetingTestData.MeetingGroup.JoinToGroupMember(newOrganizerId);
            meetingTestData.MeetingGroup.JoinToGroupMember(settingMemberId);
            meetingTestData.Meeting.AddAttendee(meetingTestData.MeetingGroup, newOrganizerId, 0);
            meetingTestData.Meeting.AddAttendee(meetingTestData.MeetingGroup, settingMemberId, 0);
            meetingTestData.Meeting.SetHostRole(meetingTestData.MeetingGroup, creatorId, settingMemberId);
            DomainEventsTestHelper.ClearAllDomainEvents(meetingTestData.Meeting);

            meetingTestData.Meeting.SetHostRole(meetingTestData.MeetingGroup, settingMemberId, newOrganizerId);

            var newMeetingHostSetEvent = AssertPublishedDomainEvent <NewMeetingHostSetDomainEvent>(meetingTestData.Meeting);

            Assert.That(newMeetingHostSetEvent.HostId, Is.EqualTo(newOrganizerId));
        }