示例#1
0
        public void TestProjectServicesRules_RulesForPipelineStatus(string testValue)
        {
            this.Response.Messages.Clear();
            this.Response.Messages.HasErrors = false;

            var query1 = from p in this.db.Context.Projects
                         join q in this.db.Context.Quotes
                         on p.ProjectId equals q.ProjectId
                         where p.OwnerId == user.UserId && q.AwaitingDiscountRequest == true &&
                         p.ProjectStatusTypeId == ProjectStatusTypeEnum.Inactive
                         select new
            {
                p
            };
            var     result1  = query1.FirstOrDefault();
            Project _project = result1.p as Project;

            switch (testValue)
            {
            case "ChangeFromInActiveToOpen":
                _project.ProjectStatusTypeId = ProjectStatusTypeEnum.Open;
                projectService.RulesForPipelineStatus(user, _project);
                Assert.That(_project.ProjectLeadStatusTypeId, Is.EqualTo(ProjectLeadStatusTypeEnum.Opportunity));
                break;

            case "ChangeToOpportunityWhenProjectOpentatusIsSubmittal":
                _project.ProjectStatusTypeId     = ProjectStatusTypeEnum.Open;
                _project.ProjectOpenStatusTypeId = (byte)ProjectOpenStatusTypeEnum.Submittal;
                projectService.RulesForPipelineStatus(user, _project);
                Assert.That(_project.ProjectLeadStatusTypeId, Is.EqualTo(ProjectLeadStatusTypeEnum.Opportunity));
                break;

            case "ChangeToOpportinityWhenDARIsApproved":
                _project.ProjectStatusTypeId = ProjectStatusTypeEnum.Open;
                projectService.RulesForPipelineStatus(user, _project);
                Assert.That(_project.ProjectLeadStatusTypeId, Is.EqualTo(ProjectLeadStatusTypeEnum.Opportunity));
                break;

            case "ChangeFromInActiveToDisqualified":
                _project.ProjectStatusTypeId = ProjectStatusTypeEnum.Open;
                _project.ProjectStatusTypeId = ProjectStatusTypeEnum.Inactive;
                projectService.RulesForPipelineStatus(user, _project);
                Assert.That(_project.ProjectLeadStatusTypeId, Is.EqualTo(ProjectLeadStatusTypeEnum.Disqualified));
                break;

            case "AddNoteWhenChangeFromLeadToOpportunity":
                _project.ProjectStatusTypeId     = ProjectStatusTypeEnum.Open;
                _project.ProjectLeadStatusTypeId = ProjectLeadStatusTypeEnum.Opportunity;
                projectService.RulesForPipelineStatus(user, _project);
                ProjectPipelineNote _model = this.db.Context.ProjectPipelineNotes.Where(ppn => ppn.ProjectId == _project.ProjectId).FirstOrDefault();
                Assert.That(_model, Is.Not.EqualTo(null));
                Assert.That(_model.ProjectId, Is.EqualTo(_project.ProjectId));
                Assert.That(_model.Note, Is.EqualTo(Resources.ResourceUI.ConvertToOpportunity));
                break;
            }
        }
示例#2
0
        public void TestProjectAPI_GetProjectPipeLineNotes()
        {
            SetupProjectAPIForTesting();
            ProjectPipelineNote projectPipeLineNote = this.db.Context.ProjectPipelineNotes
                                                      .Where(ppn => ppn.OwnerId == user.UserId)
                                                      .OrderByDescending(ppn => ppn.ProjectId)
                                                      .FirstOrDefault();

            serviceResponse = projectApi.GetProjectPipelineNotes(projectPipeLineNote.ProjectId);

            Assert.That(serviceResponse.HasError, Is.EqualTo(false));
            ProjectPipelineNoteListModel model = serviceResponse.Model as ProjectPipelineNoteListModel;

            Assert.That(model.Items.Count, Is.GreaterThan(0));
            ProjectPipelineNoteModel ppnModel = model.Items.First();

            Assert.That(ppnModel.Note, Is.EqualTo(projectPipeLineNote.Note));
        }