Пример #1
0
 public Request(
     ProcessRequestDelegate <T> operation
     , ValidateRequestDelegate validateRequest   = null
     , AuthorizeRequestDelegate authorizeRequest = null
     ) : base(validateRequest, authorizeRequest)
 {
     _operation = operation;
 }
Пример #2
0
 public RequestBase(
     ValidateRequestDelegate validateRequest
     , AuthorizeRequestDelegate authorizeRequest
     )
 {
     _validateRequest  = validateRequest;
     _authorizeRequest = authorizeRequest;
     _requestBag       = new Dictionary <string, object>();
 }
        public async Task VerifyComponentsHookUpCorrectly()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddTransient <IRequestProcessor, RequestProcessor>();

            var serviceProvider = services.BuildServiceProvider();

            string logKey = "TestLog";
            // Request processing
            ProcessRequestDelegate <string> process =
                async(request, contextBag, cancellationToken) =>
            {
                var log = contextBag[logKey] as StringBuilder;
                log.Append("Processed");
                return(string.Empty);
            };

            ValidateRequestDelegate validator = async(request, contextBag, cancellationToken) =>
            {
                var log = contextBag[logKey] as StringBuilder;
                log.Append("Validated>>");
                return(RequestValidationResult.Instance());
            };

            AuthorizeRequestDelegate authorizer = async(request, contextBag, cancellationToken) =>
            {
                var log = contextBag[logKey] as StringBuilder;
                log.Append("Authorized>>");
                return(new RequestAuthorizationResult());
            };

            var contextBag = ApFrameworkHelper.GetEmptyBag();

            contextBag[logKey] = new StringBuilder();

            var expected = "Authorized>>Validated>>Processed";

            var request   = new Request <string>(process, validator, authorizer);
            var processor = serviceProvider.GetService <IRequestProcessor>();

            await processor.ProcessRequestAsync(request, contextBag);

            var log = contextBag[logKey] as StringBuilder;

            Assert.True(log.ToString() == expected);
        }