Example #1
0
        public void Setup()
        {
            UserId = Guid.NewGuid();
            ApplyingOrganisationId = Guid.NewGuid();
            ApplicationId          = Guid.NewGuid();

            ApplyRepository = new Mock <IApplyRepository>();
            ApplyRepository.Setup(r => r.GetNextRoatpApplicationReference()).ReturnsAsync("APR123456");
            ApplyRepository.Setup(r => r.StartApplication(ApplicationId, It.IsAny <ApplyData>(), ApplyingOrganisationId, UserId)).ReturnsAsync(ApplicationId);

            OrganisationRepository = new Mock <IOrganisationRepository>();
            OrganisationRepository.Setup(r => r.GetOrganisationByUserId(UserId)).ReturnsAsync(new Organisation {
                Id = ApplyingOrganisationId
            });

            ContactRepository = new Mock <IContactRepository>();
            ContactRepository.Setup(r => r.GetContact(UserId)).ReturnsAsync(new Contact {
                Id = UserId, ApplyOrganisationId = ApplyingOrganisationId
            });

            Handler = new StartApplicationHandler(ApplyRepository.Object, OrganisationRepository.Object, ContactRepository.Object);
        }
        public async Task SetUp()
        {
            DataContext = DataContextHelpers.GetInMemoryDataContext();

            var applicationDataValidator = Substitute.For <IApplicationDataValidator>();

            applicationDataValidator.IsValid("", "").ReturnsForAnyArgs(true);
            var logger = Substitute.For <ILogger <StartApplicationHandler> >();

            Handler = new StartApplicationHandler(DataContext, applicationDataValidator, logger);

            WorkflowId = Guid.NewGuid();

            var projectId = Guid.NewGuid();
            await DataContext.Workflows.AddAsync(
                new Workflow()
            {
                Type = "EPAO", Status = WorkflowStatus.Live, Id = WorkflowId, ProjectId = projectId
            });

            var workflowSections = new[]
            {
                new WorkflowSection {
                    Id = Guid.NewGuid(), Title = "Section 1", QnAData = new QnAData()
                    {
                        Pages = new List <Page>()
                        {
                            new Page()
                            {
                                Title = "[PageTitleToken1]"
                            },
                            new Page()
                            {
                                Title = "[PageTitleToken2]"
                            }
                        }
                    }
                },
                new WorkflowSection {
                    Id = Guid.NewGuid(), Title = "Section 2", QnAData = new QnAData()
                    {
                        Pages = new List <Page>()
                    }
                },
                new WorkflowSection {
                    Id = Guid.NewGuid(), Title = "Section 3", QnAData = new QnAData()
                    {
                        Pages = new List <Page>()
                    }
                },
                new WorkflowSection {
                    Id = Guid.NewGuid(), Title = "Section 4", QnAData = new QnAData()
                    {
                        Pages = new List <Page>()
                    }
                },
                new WorkflowSection {
                    Id = Guid.NewGuid(), Title = "Invalid section", QnAData = new QnAData()
                    {
                        Pages = new List <Page>()
                    }
                }
            };

            await DataContext.WorkflowSections.AddRangeAsync(workflowSections);

            await DataContext.WorkflowSequences.AddRangeAsync(new[]
            {
                new WorkflowSequence {
                    WorkflowId = WorkflowId, SectionId = workflowSections[0].Id, SectionNo = 1, SequenceNo = 1, IsActive = true
                },
                new WorkflowSequence {
                    WorkflowId = WorkflowId, SectionId = workflowSections[1].Id, SectionNo = 2, SequenceNo = 1, IsActive = true
                },
                new WorkflowSequence {
                    WorkflowId = WorkflowId, SectionId = workflowSections[2].Id, SectionNo = 3, SequenceNo = 1, IsActive = true
                },
                new WorkflowSequence {
                    WorkflowId = WorkflowId, SectionId = workflowSections[3].Id, SectionNo = 4, SequenceNo = 2, IsActive = false
                },
                new WorkflowSequence {
                    WorkflowId = Guid.NewGuid()
                },
                new WorkflowSequence {
                    WorkflowId = Guid.NewGuid()
                },
            });

            await DataContext.Projects.AddAsync(new Project { Id = projectId, ApplicationDataSchema = "" });

            await DataContext.SaveChangesAsync();
        }