예제 #1
0
        public IActionResult Create(int?templateId = null)
        {
            var test = new TestDTO();

            var templates = testTemplateService
                            .GetTemplatesSummary()
                            .ToArray();

            ViewData["Templates"] = templates
                                    .Select(template => new SelectListItem
            {
                Value = template.Id.ToString(),
                Text  = template.Title
            });

            templateId = templateId ?? templates.FirstOrDefault()?.Id;
            if (templateId.HasValue)
            {
                testService.BindToTemplate(test, templateId.Value);
            }

            return(View(test));
        }
예제 #2
0
        public void Should_Get_All_Active()
        {
            var templatesRepositoryMock = new Mock <IRepository <TestTemplate> >();

            templatesRepositoryMock.Setup(m => m.GetAll()).Returns(() => new[]
            {
                new TestTemplate
                {
                    Id     = 1,
                    Title  = "1",
                    Levels = new List <TestTemplateLevel>()
                },
                new TestTemplate
                {
                    Id     = 2,
                    Title  = "2",
                    Levels = new List <TestTemplateLevel>
                    {
                        new TestTemplateLevel
                        {
                            MaxComplexity = 3,
                            TaskTypes     =
                            {
                                new LevelTaskType
                                {
                                    TaskType = new TaskType()
                                }
                            }
                        }
                    }
                },
                new TestTemplate
                {
                    Id     = 3,
                    Title  = "3",
                    Levels = new List <TestTemplateLevel>
                    {
                        new TestTemplateLevel
                        {
                            MinComplexity = 5,
                            TaskTypes     =
                            {
                                new LevelTaskType
                                {
                                    TaskType = new TaskType()
                                }
                            }
                        }
                    }
                }
            });

            var unitOfWorkMock = new Mock <IUnitOfWork>();

            unitOfWorkMock.Setup(u => u.TestTemplates).Returns(() => templatesRepositoryMock.Object);

            var taskServiceMock = new Mock <ITaskSource>();

            taskServiceMock.Setup(m => m.Filter(It.Is <TaskFilterDTO>(l => l.MinComplexity == 5 && l.TaskTypeIds.Any())))
            .Returns(new TaskDTO[3]);
            taskServiceMock.Setup(m => m.Filter(It.Is <TaskFilterDTO>(l => l.MaxComplexity == 3 && l.TaskTypeIds.Any())))
            .Returns(new TaskDTO[2]);

            var service = new TestTemplateService(taskServiceMock.Object, unitOfWorkMock.Object, mapper);
            var testTemplateListItems = service.GetTemplatesSummary().ToArray();

            Assert.Equal(3, testTemplateListItems.GroupBy(t => t.Id).Count());
            Assert.True(testTemplateListItems.All(t => t.Id.ToString() == t.Title));
            Assert.Empty(testTemplateListItems[0].Levels);
            Assert.Equal(2, testTemplateListItems[1].Levels.Single().CountPerTypes.Sum(t => t.Count));
            Assert.Equal(3, testTemplateListItems[2].Levels.Single().CountPerTypes.Sum(t => t.Count));
        }
예제 #3
0
        public IActionResult List()
        {
            var templateListItems = testTemplateService.GetTemplatesSummary();

            return(View(templateListItems));
        }