Example #1
0
        private async Task <Guid> CreateTestFlowAsync()
        {
            string testName              = SharedConsoleFlows.AskForString("What is the name of the test?");
            byte   numberOfVersions      = SharedConsoleFlows.AskForByte("How many versions are there?");
            byte   minimumGrade          = SharedConsoleFlows.AskForByte("What is the minimum grade?");
            byte   standardizationFactor = SharedConsoleFlows.AskForByte("What is the standardization factor?");

            var createTestRequest = new CreateTestRequest()
            {
                Name                  = testName,
                MinimumGrade          = minimumGrade,
                StandardizationFactor = standardizationFactor,
                NumberOfVersions      = numberOfVersions
            };
            CreateTestResult createTestResponse = await _testController.CreateTestAsync(createTestRequest);

            Guid testId = createTestResponse.TestId;

            if (createTestResponse.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(createTestResponse.ValidationMessages);
                testId = await CreateTestFlowAsync();
            }
            return(testId);
        }
        public async Task CreateTestAsync_WithValidationMessages_ReturnsValidationMessages()
        {
            var input = CreateDefaultTestRequest();
            var expectedValidationMessages = _fixture.CreateMany <ValidationMessage>();

            _testValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(expectedValidationMessages);

            CreateTestResult result = await _sut.CreateTestAsync(input);

            result.Should().NotBeNull();
            result.ValidationMessages.Should().BeEquivalentTo(expectedValidationMessages);
        }
        public async Task CreateTestAsync_WithValidRequest_CreatesClass()
        {
            CreateTestRequest input = CreateDefaultTestRequest();
            var validationMessages  = _fixture.CreateMany <ValidationMessage>(0);

            _testValidator
            .Setup(x => x.ValidateRules(input))
            .Returns(validationMessages);

            CreateTestResult result = await _sut.CreateTestAsync(input);

            result.TestId.Should().NotBeEmpty();
            result.ValidationMessages.Should().BeEmpty();

            _testRepository
            .Verify(x => x.CreateAsync(It.Is <Test>(x => x.Name.Value == input.Name)));
        }