Exemplo n.º 1
0
        public async Task BuildExecutionRequestContextAsync_ValidateOnlyButExtensionVersionDoesNotSupportValidation_ShouldGenerateError()
        {
            var mockExtensionRepository = new Mock <IExtensionRepository>();
            var erContextBuilder        = new ExecutionRequestContextBuilder(mockExtensionRepository.Object);

            var execRequestApiModel = new ExecutionRequestApiModel
            {
                ExtensionId        = DefaultExtensionId,
                ExtensionVersionId = DefaultExtensionVersionId,
                ValidateOnly       = true
            };

            var extension = CreateDefaultExtension();

            extension.ExtensionVersions.First().SupportsValidation = false;

            mockExtensionRepository
            .Setup(r => r.GetExtensionAsync(DefaultExtensionId))
            .Returns(Task.FromResult(extension));

            var erContext = await erContextBuilder.BuildExecutionRequestContextAsync(execRequestApiModel);

            erContext.ValidationErrors.Should().HaveCount(1);
            erContext.ValidationErrors.First().Should().Contain(ErrorCodes.ExtensionVersionDoesNotSupportValidation);
        }
Exemplo n.º 2
0
        public async Task BuildExecutionRequestContextAsync_GivenMultipleMistakes_ShouldGenerateMultipleErrors()
        {
            var mockExtensionRepository = new Mock <IExtensionRepository>();
            var erContextBuilder        = new ExecutionRequestContextBuilder(mockExtensionRepository.Object);

            var execRequestApiModel = new ExecutionRequestApiModel
            {
                Priority = "Not a real priority."
            };

            var extension = CreateDefaultExtension();

            mockExtensionRepository
            .Setup(r => r.GetExtensionAsync(DefaultExtensionId))
            .Returns(Task.FromResult(extension));

            var erContext = await erContextBuilder.BuildExecutionRequestContextAsync(execRequestApiModel);

            erContext.ValidationErrors.Should().HaveCount(3);
        }
Exemplo n.º 3
0
        public async Task BuildExecutionRequestContextAsync_NoExtensionVersionIdProvided_ShouldGenerateError()
        {
            var mockExtensionRepository = new Mock <IExtensionRepository>();
            var erContextBuilder        = new ExecutionRequestContextBuilder(mockExtensionRepository.Object);

            var execRequestApiModel = new ExecutionRequestApiModel
            {
                ExtensionId = DefaultExtensionId
            };

            var extension = CreateDefaultExtension();

            mockExtensionRepository
            .Setup(r => r.GetExtensionAsync(DefaultExtensionId))
            .Returns(Task.FromResult(extension));

            var erContext = await erContextBuilder.BuildExecutionRequestContextAsync(execRequestApiModel);

            erContext.ValidationErrors.Should().HaveCount(1);
            erContext.ValidationErrors.First().Should().Contain(ErrorCodes.ExtensionVersionIdNotProvided);
        }
Exemplo n.º 4
0
        public async Task BuildExecutionRequestContextAsync_ExecutionProfileDoesNotSupportPriority_ShouldGenerateError()
        {
            var mockExtensionRepository = new Mock <IExtensionRepository>();
            var erContextBuilder        = new ExecutionRequestContextBuilder(mockExtensionRepository.Object);

            var execRequestApiModel = new ExecutionRequestApiModel
            {
                ExtensionId        = DefaultExtensionId,
                ExtensionVersionId = DefaultExtensionVersionId,
                Priority           = ExecutionPriority.Low.ToString()
            };

            var extension = CreateDefaultExtension();

            mockExtensionRepository
            .Setup(r => r.GetExtensionAsync(DefaultExtensionId))
            .Returns(Task.FromResult(extension));

            var erContext = await erContextBuilder.BuildExecutionRequestContextAsync(execRequestApiModel);

            erContext.ValidationErrors.Should().HaveCount(1);
            erContext.ValidationErrors.First().Should().Contain(ErrorCodes.PriorityNotSupported);
        }