public async Task HandlingCreateIpoCommand_ShouldThrowErrorIfMcScopeIsAcrossSystems() { var mcPkgDetails1 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D1", Id = 1, McPkgNo = _mcPkgNo1, System = _system }; var mcPkgDetails2 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo2, Description = "D2", Id = 2, McPkgNo = _mcPkgNo2, System = _system2 }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { mcPkgDetails1, mcPkgDetails2 }; _mcPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync(_plant, _projectName, _mcPkgScope)) .Returns(Task.FromResult(mcPkgDetails)); var command = new CreateInvitationCommand( _title, _description, _location, new DateTime(2020, 9, 1, 12, 0, 0, DateTimeKind.Utc), new DateTime(2020, 9, 1, 13, 0, 0, DateTimeKind.Utc), _projectName, _type, _participants, _mcPkgScope, null); var result = await Assert.ThrowsExceptionAsync <IpoValidationException>(() => _dut.Handle(command, default)); Assert.IsTrue(result.Message.StartsWith("Mc pkg scope must be within a system")); }
private void AssertMcPkgData(ProCoSysMcPkg PCSMcPkg, ProCoSysMcPkgDto mcPkgDto) { Assert.AreEqual(PCSMcPkg.Id, mcPkgDto.Id); Assert.AreEqual(PCSMcPkg.McPkgNo, mcPkgDto.McPkgNo); Assert.AreEqual(PCSMcPkg.Description, mcPkgDto.Description); Assert.AreEqual(PCSMcPkg.DisciplineCode, mcPkgDto.DisciplineCode); }
public void Setup() { _mainApiOptions = new Mock <IOptionsMonitor <MainApiOptions> >(); _mainApiOptions .Setup(x => x.CurrentValue) .Returns(new MainApiOptions { ApiVersion = "4.0", BaseAddress = "http://example.com" }); _foreignApiClient = new Mock <IBearerTokenApiClient>(); _proCoSysMcPkg1 = new ProCoSysMcPkg { Id = 111111111, McPkgNo = "McNo1", Description = "Description1", DisciplineCode = "A", System = "1|2" }; _proCoSysMcPkg2 = new ProCoSysMcPkg { Id = 222222222, McPkgNo = "McNo2", Description = "Description2", DisciplineCode = "A", System = "1|2" }; _proCoSysMcPkg3 = new ProCoSysMcPkg { Id = 333333333, McPkgNo = "McNo3", Description = "Description3", DisciplineCode = "B", System = "1|2" }; _foreignApiClient .SetupSequence(x => x.QueryAndDeserializeAsync <List <ProCoSysMcPkg> >(It.IsAny <string>(), null)) .Returns(Task.FromResult(new List <ProCoSysMcPkg> { _proCoSysMcPkg1, _proCoSysMcPkg2, _proCoSysMcPkg3 })); _foreignApiClient .Setup(x => x.PutAsync(It.IsAny <string>(), It.IsAny <HttpContent>())) .Returns(Task.CompletedTask); _dut = new MainApiMcPkgService(_foreignApiClient.Object, _mainApiOptions.Object); }
public async Task HandlingUpdateIpoCommand_ShouldThrowErrorIfMcScopeIsNotFoundInMain() { var mcPkgDetails1 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D1", Id = 1, McPkgNo = _mcPkgNo1, System = _system }; var mcPkgDetails2 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D2", Id = 2, McPkgNo = _mcPkgNo2, System = _system }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { mcPkgDetails1, mcPkgDetails2 }; var addedScope = new List <string> { _mcPkgNo1, _mcPkgNo2, _mcPkgNo3 }; _mcPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync(_plant, _projectName, addedScope)) .Returns(Task.FromResult(mcPkgDetails)); var command = new EditInvitationCommand( _dpInvitationId, _newTitle, _newDescription, null, new DateTime(2020, 9, 1, 12, 0, 0, DateTimeKind.Utc), new DateTime(2020, 9, 1, 13, 0, 0, DateTimeKind.Utc), _typeDp, _updatedParticipants, addedScope, null, _rowVersion); var result = await Assert.ThrowsExceptionAsync <IpoValidationException>(() => _dut.Handle(command, default)); Assert.IsTrue(result.Message.StartsWith("Could not find all mc pkgs in scope")); }
public async Task TestInitializeAsync() { _sigurdSigner = TestFactory.Instance.GetTestUserForUserType(UserType.Signer).Profile; _pernillaPlanner = TestFactory.Instance.GetTestUserForUserType(UserType.Planner).Profile; _contractor = TestFactory.Instance.GetTestUserForUserType(UserType.Contractor).Profile; _andreaAdmin = TestFactory.Instance.GetTestUserForUserType(UserType.Admin).Profile; var personParticipant = new CreateInvitedPersonDto { AzureOid = Guid.NewGuid(), Email = "*****@*****.**", Required = true }; var person1InFunctionalRoleParticipant = new CreateInvitedPersonDto { AzureOid = new Guid(_contractor.Oid), Email = "*****@*****.**" }; var person2InFunctionalRoleParticipant = new CreateInvitedPersonDto { AzureOid = Guid.NewGuid(), Email = "på[email protected]" }; var functionalRoleParticipant = new CreateFunctionalRoleDto { Code = FunctionalRoleCode, Persons = new List <CreateInvitedPersonDto> { person1InFunctionalRoleParticipant, person2InFunctionalRoleParticipant } }; _participants = new List <CreateParticipantsDto> { new CreateParticipantsDto { Organization = Organization.Contractor, FunctionalRole = functionalRoleParticipant, SortKey = 0 }, new CreateParticipantsDto { Organization = Organization.ConstructionCompany, Person = personParticipant, SortKey = 1 } }; _participantsForSigning = new List <CreateParticipantsDto> { new CreateParticipantsDto { Organization = Organization.Contractor, Person = _sigurdSigner.AsCreatePersonDto(true), SortKey = 0 }, new CreateParticipantsDto { Organization = Organization.ConstructionCompany, Person = _sigurdSigner.AsCreatePersonDto(true), SortKey = 1 }, new CreateParticipantsDto { Organization = Organization.TechnicalIntegrity, Person = _sigurdSigner.AsCreatePersonDto(false), SortKey = 2 } }; var knownGeneralMeeting = new ApiGeneralMeeting { Classification = string.Empty, Contract = null, Convention = string.Empty, DateCreatedUtc = DateTime.MinValue, DateEnd = new ApiDateTimeTimeZoneModel { DateTimeUtc = _invitationEndTime }, DateStart = new ApiDateTimeTimeZoneModel { DateTimeUtc = _invitationStartTime }, ExternalId = null, Id = KnownTestData.MeetingId, InviteBodyHtml = string.Empty, IsDisabled = false, IsOnlineMeeting = false, Location = InvitationLocation, Organizer = new ApiPersonDetailsV1(), OutlookMode = string.Empty, Participants = new List <ApiMeetingParticipant> { new ApiMeetingParticipant { Id = Guid.NewGuid(), Person = new ApiPersonDetailsV1 { Id = Guid.NewGuid(), Mail = "*****@*****.**" }, OutlookResponse = "Required" }, new ApiMeetingParticipant { Id = Guid.NewGuid(), Person = new ApiPersonDetailsV1 { Id = Guid.NewGuid(), Mail = "*****@*****.**" }, OutlookResponse = "Accepted" } }, Project = null, ResponsiblePersons = new List <ApiPersonDetailsV1>(), Series = null, Title = string.Empty }; _commentId = TestFactory.Instance.KnownTestData.CommentIds.First(); const string McPkgNo1 = "MC1"; const string McPkgNo2 = "MC2"; _mcPkgScope = new List <string> { McPkgNo1, McPkgNo2 }; _mcPkgDetails1 = new ProCoSysMcPkg { CommPkgNo = KnownTestData.CommPkgNo, Description = "D1", Id = 1, McPkgNo = McPkgNo1, System = KnownTestData.System }; _mcPkgDetails2 = new ProCoSysMcPkg { CommPkgNo = KnownTestData.CommPkgNo, Description = "D2", Id = 2, McPkgNo = McPkgNo2, System = KnownTestData.System }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { _mcPkgDetails1, _mcPkgDetails2 }; TestFactory.Instance .McPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync(TestFactory.PlantWithAccess, TestFactory.ProjectWithAccess, _mcPkgScope)) .Returns(Task.FromResult(mcPkgDetails)); var personsInFunctionalRole = new List <ProCoSysPerson> { new ProCoSysPerson { AzureOid = person1InFunctionalRoleParticipant.AzureOid.ToString(), FirstName = "Per", LastName = "Persen", Email = person1InFunctionalRoleParticipant.Email, UserName = "******" }, new ProCoSysPerson { AzureOid = person2InFunctionalRoleParticipant.AzureOid.ToString(), FirstName = "Pål", LastName = "Persen", Email = person2InFunctionalRoleParticipant.Email, UserName = "******" } }; IList <ProCoSysFunctionalRole> pcsFunctionalRoles1 = new List <ProCoSysFunctionalRole> { new ProCoSysFunctionalRole { Code = KnownTestData.FunctionalRoleCode, Description = "Description", Email = "*****@*****.**", InformationEmail = null, Persons = personsInFunctionalRole, UsePersonalEmail = true } }; IList <ProCoSysFunctionalRole> pcsFunctionalRoles2 = new List <ProCoSysFunctionalRole> { new ProCoSysFunctionalRole { Code = FunctionalRoleCode, Description = "Description", Email = "*****@*****.**", InformationEmail = null, Persons = personsInFunctionalRole, UsePersonalEmail = true } }; TestFactory.Instance .FunctionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(TestFactory.PlantWithAccess, new List <string> { KnownTestData.FunctionalRoleCode })) .Returns(Task.FromResult(pcsFunctionalRoles1)); TestFactory.Instance .FunctionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(TestFactory.PlantWithAccess, new List <string> { FunctionalRoleCode })) .Returns(Task.FromResult(pcsFunctionalRoles2)); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, _sigurdSigner.Oid, "IPO", It.IsAny <List <string> >())) .Returns(Task.FromResult(_sigurdSigner.AsProCoSysPerson())); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, _contractor.Oid, "IPO", It.IsAny <List <string> >())) .Returns(Task.FromResult(_contractor.AsProCoSysPerson())); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, _pernillaPlanner.Oid, "IPO", It.IsAny <List <string> >())) .Returns(Task.FromResult(_pernillaPlanner.AsProCoSysPerson())); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, _andreaAdmin.Oid, "IPO", It.IsAny <List <string> >())) .Returns(Task.FromResult(_andreaAdmin.AsProCoSysPerson())); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, personParticipant.AzureOid.ToString(), "IPO", new List <string> { "SIGN" })) .Returns(Task.FromResult(new ProCoSysPerson { AzureOid = personParticipant.AzureOid.ToString(), Email = personParticipant.Email, FirstName = "Ola", LastName = "Nordmann", UserName = "******" })); TestFactory.Instance .FusionMeetingClientMock .Setup(x => x.CreateMeetingAsync(It.IsAny <Action <GeneralMeetingBuilder> >())) .Returns(Task.FromResult(new GeneralMeeting(knownGeneralMeeting))); TestFactory.Instance .FusionMeetingClientMock .Setup(x => x.GetMeetingAsync(It.IsAny <Guid>(), It.IsAny <Action <ODataQuery> >())) .Returns(Task.FromResult(new GeneralMeeting(knownGeneralMeeting))); TestFactory.Instance .MeetingOptionsMock .Setup(x => x.CurrentValue) .Returns(new MeetingOptions { PcsBaseUrl = TestFactory.PlantWithAccess }); _attachmentOnInitialMdpInvitation = await UploadAttachmentAsync(InitialMdpInvitationId); }
public void Setup() { _plantProviderMock = new Mock <IPlantProvider>(); _plantProviderMock .Setup(x => x.Plant) .Returns(_plant); _currentUserProviderMock = new Mock <ICurrentUserProvider>(); _personRepositoryMock = new Mock <IPersonRepository>(); _meetingClientMock = new Mock <IFusionMeetingClient>(); _meetingClientMock .Setup(x => x.CreateMeetingAsync(It.IsAny <Action <GeneralMeetingBuilder> >())) .Returns(Task.FromResult( new GeneralMeeting( new ApiGeneralMeeting() { Classification = string.Empty, Contract = null, Convention = string.Empty, DateCreatedUtc = DateTime.MinValue, DateEnd = new ApiDateTimeTimeZoneModel(), DateStart = new ApiDateTimeTimeZoneModel(), ExternalId = null, Id = _meetingId, InviteBodyHtml = string.Empty, IsDisabled = false, IsOnlineMeeting = false, Location = string.Empty, Organizer = new ApiPersonDetailsV1(), OutlookMode = string.Empty, Participants = new List <ApiMeetingParticipant>(), Project = null, ResponsiblePersons = new List <ApiPersonDetailsV1>(), Series = null, Title = string.Empty }))); _invitationRepositoryMock = new Mock <IInvitationRepository>(); _invitationRepositoryMock .Setup(x => x.Add(It.IsAny <Invitation>())) .Callback <Invitation>(x => _createdInvitation = x); _transactionMock = new Mock <IDbContextTransaction>(); _unitOfWorkMock = new Mock <IUnitOfWork>(); _unitOfWorkMock.Setup(x => x.BeginTransaction(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(_transactionMock.Object)); _commPkgApiServiceMock = new Mock <ICommPkgApiService>(); _mcPkgDetails1 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D1", Id = 1, McPkgNo = _mcPkgNo1, System = _system }; _mcPkgDetails2 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D2", Id = 2, McPkgNo = _mcPkgNo2, System = _system }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { _mcPkgDetails1, _mcPkgDetails2 }; _mcPkgApiServiceMock = new Mock <IMcPkgApiService>(); _mcPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync(_plant, _projectName, _mcPkgScope)) .Returns(Task.FromResult(mcPkgDetails)); _personDetails = new ProCoSysPerson { AzureOid = _azureOid.ToString(), FirstName = "Ola", LastName = "Nordman", Email = "*****@*****.**" }; _personApiServiceMock = new Mock <IPersonApiService>(); _personApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync(_plant, _azureOid.ToString(), "IPO", new List <string> { "SIGN" })) .Returns(Task.FromResult(_personDetails)); _functionalRoleDetails = new ProCoSysFunctionalRole { Code = _functionalRoleCode, Description = "FR description", Email = "*****@*****.**", InformationEmail = null, Persons = null, UsePersonalEmail = false }; _functionalRoleWithMultipleEmailsDetails = new ProCoSysFunctionalRole { Code = _functionalRoleWithMultipleEmailsCode, Description = "FR description", Email = "[email protected];[email protected]", InformationEmail = null, Persons = null, UsePersonalEmail = false }; _functionalRoleWithMultipleInformationEmailsDetails = new ProCoSysFunctionalRole { Code = _functionalRoleWithMultipleInformationEmailsCode, Description = "FR description", Email = "*****@*****.**", InformationEmail = "[email protected];[email protected]", Persons = null, UsePersonalEmail = false }; IList <ProCoSysFunctionalRole> frDetails = new List <ProCoSysFunctionalRole> { _functionalRoleDetails }; IList <ProCoSysFunctionalRole> frMultipleEmailsDetails = new List <ProCoSysFunctionalRole> { _functionalRoleWithMultipleEmailsDetails }; IList <ProCoSysFunctionalRole> frMultipleInformationDetails = new List <ProCoSysFunctionalRole> { _functionalRoleWithMultipleInformationEmailsDetails }; _functionalRoleApiServiceMock = new Mock <IFunctionalRoleApiService>(); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleCode })) .Returns(Task.FromResult(frDetails)); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleWithMultipleEmailsCode })) .Returns(Task.FromResult(frMultipleEmailsDetails)); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleWithMultipleInformationEmailsCode })) .Returns(Task.FromResult(frMultipleInformationDetails)); _meetingOptionsMock = new Mock <IOptionsMonitor <MeetingOptions> >(); _command = new CreateInvitationCommand( _title, _description, _location, new DateTime(2020, 9, 1, 12, 0, 0, DateTimeKind.Utc), new DateTime(2020, 9, 1, 13, 0, 0, DateTimeKind.Utc), _projectName, _type, _participants, _mcPkgScope, null); _dut = new CreateInvitationCommandHandler( _plantProviderMock.Object, _meetingClientMock.Object, _invitationRepositoryMock.Object, _unitOfWorkMock.Object, _commPkgApiServiceMock.Object, _mcPkgApiServiceMock.Object, _personApiServiceMock.Object, _functionalRoleApiServiceMock.Object, _meetingOptionsMock.Object, _personRepositoryMock.Object, _currentUserProviderMock.Object, new Mock <ILogger <CreateInvitationCommandHandler> >().Object); }
public void Setup() { _plantProviderMock = new Mock <IPlantProvider>(); _plantProviderMock .Setup(x => x.Plant) .Returns(_plant); _personRepositoryMock = new Mock <IPersonRepository>(); _meetingClientMock = new Mock <IFusionMeetingClient>(); _meetingClientMock .Setup(x => x.UpdateMeetingAsync(_meetingId, It.IsAny <Action <GeneralMeetingPatcher> >())) .Returns(Task.FromResult( new GeneralMeeting( new ApiGeneralMeeting { Classification = string.Empty, Contract = null, Convention = string.Empty, DateCreatedUtc = DateTime.MinValue, DateEnd = new ApiDateTimeTimeZoneModel(), DateStart = new ApiDateTimeTimeZoneModel(), ExternalId = null, Id = _meetingId, InviteBodyHtml = string.Empty, IsDisabled = false, IsOnlineMeeting = false, Location = string.Empty, Organizer = new ApiPersonDetailsV1(), OutlookMode = string.Empty, Participants = new List <ApiMeetingParticipant>(), Project = null, ResponsiblePersons = new List <ApiPersonDetailsV1>(), Series = null, Title = string.Empty }))); _unitOfWorkMock = new Mock <IUnitOfWork>(); //mock comm pkg response from main API var commPkgDetails = new ProCoSysCommPkg { CommPkgNo = _commPkgNo, Description = "D1", Id = 1, CommStatus = "OK", System = _system }; IList <ProCoSysCommPkg> pcsCommPkgDetails = new List <ProCoSysCommPkg> { commPkgDetails }; _commPkgApiServiceMock = new Mock <ICommPkgApiService>(); _commPkgApiServiceMock .Setup(x => x.GetCommPkgsByCommPkgNosAsync(_plant, _projectName, _commPkgScope)) .Returns(Task.FromResult(pcsCommPkgDetails)); //mock mc pkg response from main API var mcPkgDetails1 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo, Description = "D1", Id = 1, McPkgNo = _mcPkgNo1, System = _system }; var mcPkgDetails2 = new ProCoSysMcPkg { CommPkgNo = _commPkgNo2, Description = "D2", Id = 2, McPkgNo = _mcPkgNo2, System = _system }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { mcPkgDetails1, mcPkgDetails2 }; _mcPkgApiServiceMock = new Mock <IMcPkgApiService>(); _mcPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync(_plant, _projectName, _mcPkgScope)) .Returns(Task.FromResult(mcPkgDetails)); //mock person response from main API var personDetails = new ProCoSysPerson { AzureOid = _azureOid.ToString(), FirstName = _firstName, LastName = _lastName, Email = "*****@*****.**", UserName = "******" }; var newPersonDetails = new ProCoSysPerson { AzureOid = _newAzureOid.ToString(), FirstName = "Kari", LastName = "Nordman", Email = "*****@*****.**", UserName = "******" }; _personApiServiceMock = new Mock <IPersonApiService>(); _personApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync(_plant, _azureOid.ToString(), "IPO", new List <string> { "SIGN" })) .Returns(Task.FromResult(personDetails)); _personApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync(_plant, _newAzureOid.ToString(), "IPO", new List <string> { "SIGN" })) .Returns(Task.FromResult(newPersonDetails)); //mock functional role response from main API var frDetails = new ProCoSysFunctionalRole { Code = _functionalRoleCode, Description = "FR description", Email = "*****@*****.**", InformationEmail = null, Persons = null, UsePersonalEmail = false }; var newFrDetails = new ProCoSysFunctionalRole { Code = _newFunctionalRoleCode, Description = "FR description2", Email = "*****@*****.**", InformationEmail = null, Persons = null, UsePersonalEmail = false }; var frMultipleEmailsDetails = new ProCoSysFunctionalRole { Code = _functionalRoleWithMultipleEmailsCode, Description = "FR description", Email = "[email protected];[email protected]", InformationEmail = null, Persons = null, UsePersonalEmail = false }; var frMultipleInformationEmailsDetails = new ProCoSysFunctionalRole { Code = _functionalRoleWithMultipleInformationEmailsCode, Description = "FR description", Email = "*****@*****.**", InformationEmail = "[email protected];[email protected]", Persons = null, UsePersonalEmail = false }; IList <ProCoSysFunctionalRole> pcsFrDetails = new List <ProCoSysFunctionalRole> { frDetails }; IList <ProCoSysFunctionalRole> newPcsFrDetails = new List <ProCoSysFunctionalRole> { newFrDetails }; IList <ProCoSysFunctionalRole> pcsFrMultipleEmailsDetails = new List <ProCoSysFunctionalRole> { frMultipleEmailsDetails }; IList <ProCoSysFunctionalRole> pcsFrMultipleInformationEmailsDetails = new List <ProCoSysFunctionalRole> { frMultipleInformationEmailsDetails }; _functionalRoleApiServiceMock = new Mock <IFunctionalRoleApiService>(); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleCode })) .Returns(Task.FromResult(pcsFrDetails)); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _newFunctionalRoleCode })) .Returns(Task.FromResult(newPcsFrDetails)); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleWithMultipleEmailsCode })) .Returns(Task.FromResult(pcsFrMultipleEmailsDetails)); _functionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(_plant, new List <string> { _functionalRoleWithMultipleInformationEmailsCode })) .Returns(Task.FromResult(pcsFrMultipleInformationEmailsDetails)); var mcPkgs = new List <McPkg> { new McPkg(_plant, _projectName, _commPkgNo, _mcPkgNo1, "d", _system), new McPkg(_plant, _projectName, _commPkgNo, _mcPkgNo2, "d2", _system) }; //create invitation _dpInvitation = new Invitation( _plant, _projectName, _title, _description, _typeDp, new DateTime(), new DateTime(), null, mcPkgs, null) { MeetingId = _meetingId }; var commPkgs = new List <CommPkg> { new CommPkg(_plant, _projectName, _commPkgNo, "d", "ok", _system), new CommPkg(_plant, _projectName, _commPkgNo, "d2", "ok", _system) }; //create invitation _mdpInvitation = new Invitation( _plant, _projectName, _title, _description, _typeMdp, new DateTime(), new DateTime(), null, new List <McPkg>(), commPkgs) { MeetingId = _meetingId }; _mdpInvitation.SetProtectedIdForTesting(_mdpInvitationId); var participant = new Participant( _plant, Organization.Contractor, IpoParticipantType.FunctionalRole, _functionalRoleCode, null, null, null, null, null, 0); participant.SetProtectedIdForTesting(_participantId); _dpInvitation.AddParticipant(participant); _dpInvitation.AddParticipant(new Participant( _plant, Organization.ConstructionCompany, IpoParticipantType.Person, null, _firstName, _lastName, null, "*****@*****.**", _azureOid, 1)); _dpInvitation.SetProtectedIdForTesting(_dpInvitationId); _invitationRepositoryMock = new Mock <IInvitationRepository>(); _invitationRepositoryMock .Setup(x => x.GetByIdAsync(_dpInvitationId)) .Returns(Task.FromResult(_dpInvitation)); _invitationRepositoryMock .Setup(x => x.GetByIdAsync(_mdpInvitationId)) .Returns(Task.FromResult(_mdpInvitation)); _meetingOptionsMock = new Mock <IOptionsMonitor <MeetingOptions> >(); _meetingOptionsMock.Setup(x => x.CurrentValue) .Returns(new MeetingOptions { PcsBaseUrl = _plant }); //command _command = new EditInvitationCommand( _dpInvitationId, _newTitle, _newDescription, null, new DateTime(2020, 9, 1, 12, 0, 0, DateTimeKind.Utc), new DateTime(2020, 9, 1, 13, 0, 0, DateTimeKind.Utc), _typeMdp, _updatedParticipants, null, _commPkgScope, _rowVersion); _dut = new EditInvitationCommandHandler( _invitationRepositoryMock.Object, _meetingClientMock.Object, _plantProviderMock.Object, _unitOfWorkMock.Object, _mcPkgApiServiceMock.Object, _commPkgApiServiceMock.Object, _personApiServiceMock.Object, _functionalRoleApiServiceMock.Object, _meetingOptionsMock.Object, _personRepositoryMock.Object); }
public void TestInitialize() { _sigurdSigner = TestFactory.Instance.GetTestUserForUserType(UserType.Signer).Profile; _participants = new List <CreateParticipantsDto> { new CreateParticipantsDto { Organization = Organization.Contractor, Person = _sigurdSigner.AsCreatePersonDto(true), SortKey = 0 }, new CreateParticipantsDto { Organization = Organization.ConstructionCompany, Person = _sigurdSigner.AsCreatePersonDto(true), SortKey = 1 }, new CreateParticipantsDto { Organization = Organization.TechnicalIntegrity, Person = _sigurdSigner.AsCreatePersonDto(false), SortKey = 2 } }; const string McPkgNo = "MC1"; _mcPkgScope = new List <string> { McPkgNo }; _mcPkgDetails = new ProCoSysMcPkg { CommPkgNo = KnownTestData.CommPkgNo, Description = "D1", Id = 1, McPkgNo = McPkgNo, System = KnownTestData.System }; IList <ProCoSysMcPkg> mcPkgDetails = new List <ProCoSysMcPkg> { _mcPkgDetails }; _personsInFunctionalRole = new List <ProCoSysPerson> { new ProCoSysPerson { AzureOid = AzureOid, FirstName = "FirstName", LastName = "LastName", Email = "*****@*****.**", UserName = "******" } }; _pcsFunctionalRoles = new List <ProCoSysFunctionalRole> { new ProCoSysFunctionalRole { Code = FunctionalRoleCode, Description = "Description", Email = "*****@*****.**", InformationEmail = null, Persons = _personsInFunctionalRole, UsePersonalEmail = true } }; var knownGeneralMeeting = new ApiGeneralMeeting { Classification = string.Empty, Contract = null, Convention = string.Empty, DateCreatedUtc = DateTime.MinValue, DateEnd = new ApiDateTimeTimeZoneModel { DateTimeUtc = _invitationEndTime }, DateStart = new ApiDateTimeTimeZoneModel { DateTimeUtc = _invitationStartTime }, ExternalId = null, Id = KnownTestData.MeetingId, InviteBodyHtml = string.Empty, IsDisabled = false, IsOnlineMeeting = false, Location = InvitationLocation, Organizer = new ApiPersonDetailsV1(), OutlookMode = string.Empty, Participants = new List <ApiMeetingParticipant> { new ApiMeetingParticipant { Id = Guid.NewGuid(), Person = new ApiPersonDetailsV1 { Id = Guid.NewGuid(), Mail = "*****@*****.**" }, OutlookResponse = "Required" }, new ApiMeetingParticipant { Id = Guid.NewGuid(), Person = new ApiPersonDetailsV1 { Id = Guid.NewGuid(), Mail = "*****@*****.**" }, OutlookResponse = "Accepted" } }, Project = null, ResponsiblePersons = new List <ApiPersonDetailsV1>(), Series = null, Title = string.Empty }; TestFactory.Instance .MeApiServiceMock .Setup(x => x.GetFunctionalRoleCodesAsync( TestFactory.PlantWithAccess)) .Returns(Task.FromResult(_functionalRoleCodes)); TestFactory.Instance .McPkgApiServiceMock .Setup(x => x.GetMcPkgsByMcPkgNosAsync( TestFactory.PlantWithAccess, TestFactory.ProjectWithAccess, _mcPkgScope)) .Returns(Task.FromResult(mcPkgDetails)); TestFactory.Instance .FunctionalRoleApiServiceMock .Setup(x => x.GetFunctionalRolesByCodeAsync(TestFactory.PlantWithAccess, new List <string> { FunctionalRoleCode })) .Returns(Task.FromResult(_pcsFunctionalRoles)); TestFactory.Instance .PersonApiServiceMock .Setup(x => x.GetPersonByOidWithPrivilegesAsync( TestFactory.PlantWithAccess, _sigurdSigner.Oid, "IPO", It.IsAny <List <string> >())) .Returns(Task.FromResult(_sigurdSigner.AsProCoSysPerson())); TestFactory.Instance .FusionMeetingClientMock .Setup(x => x.CreateMeetingAsync(It.IsAny <Action <GeneralMeetingBuilder> >())) .Returns(Task.FromResult(new GeneralMeeting(knownGeneralMeeting))); TestFactory.Instance .EmailServiceMock .Setup(x => x.SendEmailsAsync(It.IsAny <List <string> >(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); TestFactory.Instance .MeetingOptionsMock .Setup(x => x.CurrentValue) .Returns(new MeetingOptions { PcsBaseUrl = TestFactory.PlantWithAccess }); }