Example #1
0
        /// <summary>
        /// Validates the mock API resource.
        /// </summary>
        /// <param name="mockApi">The mock API.</param>
        /// <exception cref="ValidationException"></exception>
        public static void ValidateMockApiResource(MockApiResourceModel mockApi, ILanguageBindingFactory languageBindingFactory)
        {
            List <string> errors = new List <string>();

            // verify name
            if (IsNameInvalid(mockApi.Name))
            {
                errors.Add(Constants.InvalidMockApiNameMessage);
            }

            // verify verb
            if (mockApi.Verb == MockApiHttpVerb.None)
            {
                errors.Add(Constants.InvalidApiVerbMessage);
            }

            // verify body
            var sourceValidator = languageBindingFactory.CreateLanguageValidator(mockApi.Language);

            try
            {
                sourceValidator.Validate(mockApi.Body);
            }
            catch (ValidationException ex)
            {
                errors.AddRange(ex.Errors);
            }

            // verify route template
            if (RouteUtil.IsInvalidRouteTemplate(mockApi.RouteTemplate))
            {
                errors.Add(Constants.InvalidApiTempateMessage);
            }

            if (errors.Count > 0)
            {
                throw new ValidationException(errors);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AddMockApiService" /> class.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="mockApiRepo">The mock API repo.</param>
 /// <param name="languageBindingFactory">The language binding factory.</param>
 public AddMockApiService(ILogger logger, IMockApiRepository mockApiRepo, ILanguageBindingFactory languageBindingFactory) : base(logger, mockApiRepo)
 {
     this.languageBindingFactory = languageBindingFactory;
 }