public void Constructor_SetsProperties()
        {
            var dut = new AcceptPunchOutCommand(
                1,
                _invitationRowVersion,
                _constructionCompanyRowVersion,
                _participants);

            Assert.AreEqual(1, dut.InvitationId);
            Assert.AreEqual(_invitationRowVersion, dut.InvitationRowVersion);
            Assert.AreEqual(_constructionCompanyRowVersion, dut.ParticipantRowVersion);
            Assert.AreEqual(2, dut.Participants.Count);
        }
Example #2
0
        public async Task ValidateAsync_OnAcceptInvitationCommand_ShouldReturnFalse_WhenNoAccessToProject()
        {
            // Arrange
            var command = new AcceptPunchOutCommand(
                _invitationIdWithoutAccessToProject,
                null,
                null,
                null);

            // act
            var result = await _dut.ValidateAsync(command);

            // Assert
            Assert.IsFalse(result);
        }
Example #3
0
        public void Setup_OkState()
        {
            _invitationValidatorMock = new Mock <IInvitationValidator>();
            _rowVersionValidatorMock = new Mock <IRowVersionValidator>();
            _rowVersionValidatorMock.Setup(r => r.IsValid(_invitationRowVersion)).Returns(true);
            _rowVersionValidatorMock.Setup(r => r.IsValid(_participantRowVersion)).Returns(true);
            _rowVersionValidatorMock.Setup(r => r.IsValid(_participantRowVersion1)).Returns(true);
            _rowVersionValidatorMock.Setup(r => r.IsValid(_participantRowVersion2)).Returns(true);
            _invitationValidatorMock.Setup(inv => inv.IpoExistsAsync(_id, default)).Returns(Task.FromResult(true));
            _invitationValidatorMock.Setup(inv => inv.IpoIsInStageAsync(_id, IpoStatus.Completed, default)).Returns(Task.FromResult(true));
            _invitationValidatorMock.Setup(inv => inv.CurrentUserIsValidAccepterParticipantAsync(_id, default)).Returns(Task.FromResult(true));
            _invitationValidatorMock.Setup(inv => inv.IpoHasAccepterAsync(_id, default)).Returns(Task.FromResult(true));
            _invitationValidatorMock.Setup(inv => inv.ParticipantExistsAsync(_participantId1, _id, default)).Returns(Task.FromResult(true));
            _invitationValidatorMock.Setup(inv => inv.ParticipantExistsAsync(_participantId2, _id, default)).Returns(Task.FromResult(true));
            _command = new AcceptPunchOutCommand(
                _id,
                _invitationRowVersion,
                _participantRowVersion,
                _participants);

            _dut = new AcceptPunchOutCommandValidator(_invitationValidatorMock.Object, _rowVersionValidatorMock.Object);
        }
Example #4
0
        public void Setup()
        {
            _unitOfWorkMock = new Mock <IUnitOfWork>();

            _currentUserProviderMock = new Mock <ICurrentUserProvider>();
            _currentUserProviderMock
            .Setup(x => x.GetCurrentUserOid()).Returns(_azureOidForCurrentUser);

            //create invitation
            _invitation = new Invitation(
                _plant,
                _projectName,
                _title,
                _description,
                _typeDP,
                new DateTime(),
                new DateTime(),
                null,
                new List <McPkg> {
                new McPkg(_plant, _projectName, "Comm", "Mc", "d", "1|2")
            },
                null)
            {
                MeetingId = _meetingId
            };

            var participant1 = new Participant(
                _plant,
                Organization.Contractor,
                IpoParticipantType.FunctionalRole,
                _functionalRoleCode,
                null,
                null,
                null,
                null,
                null,
                0);

            participant1.SetProtectedIdForTesting(_participantId1);
            _invitation.AddParticipant(participant1);
            var participant2 = new Participant(
                _plant,
                Organization.ConstructionCompany,
                IpoParticipantType.Person,
                null,
                _firstName,
                _lastName,
                "OlaN",
                "*****@*****.**",
                _azureOidForCurrentUser,
                1);

            participant2.SetProtectedIdForTesting(_participantId2);
            _invitation.AddParticipant(participant2);

            _invitationRepositoryMock = new Mock <IInvitationRepository>();
            _invitationRepositoryMock
            .Setup(x => x.GetByIdAsync(It.IsAny <int>()))
            .Returns(Task.FromResult(_invitation));

            var currentPerson = new Person(_azureOidForCurrentUser, _firstName, _lastName, null, null);

            currentPerson.SetProtectedIdForTesting(_participantId2);

            _personRepositoryMock = new Mock <IPersonRepository>();
            _personRepositoryMock
            .Setup(x => x.GetByOidAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(currentPerson));

            _invitation.CompleteIpo(
                participant1,
                participant1.RowVersion.ConvertToString(),
                new Person(new Guid(), null, null, null, null),
                new DateTime());

            //command
            _command = new AcceptPunchOutCommand(
                _invitation.Id,
                _invitationRowVersion,
                _participantRowVersion,
                _participantsToChange);

            _dut = new AcceptPunchOutCommandHandler(_invitationRepositoryMock.Object,
                                                    _unitOfWorkMock.Object,
                                                    _currentUserProviderMock.Object,
                                                    _personRepositoryMock.Object);
        }