public void SetUp()
        {
            replica         = new Uri("http://replica/");
            relativeRequest = Request.Get("foo/bar");
            absoluteRequest = Request.Get("http://replica/foo/bar");
            response        = new Response(ResponseCode.Ok);
            timeout         = 5.Seconds();

            log = Substitute.For <ILog>();
            log
            .When(l => l.Log(Arg.Any <LogEvent>()))
            .Do(info => new ConsoleLog().Log(info.Arg <LogEvent>()));

            configuration = Substitute.For <IClusterClientConfiguration>();
            configuration.ResponseCriteria.Returns(new List <IResponseCriterion> {
                Substitute.For <IResponseCriterion>()
            });
            configuration.LogReplicaRequests.Returns(true);
            configuration.LogReplicaResults.Returns(true);
            configuration.ReplicaOrdering.Returns(Substitute.For <IReplicaOrdering>());
            configuration.Log.Returns(log);

            storageProvider = Substitute.For <IReplicaStorageProvider>();

            responseClassifier = Substitute.For <IResponseClassifier>();
            responseClassifier.Decide(Arg.Any <Response>(), Arg.Any <IList <IResponseCriterion> >()).Returns(ResponseVerdict.Accept);

            requestConverter = Substitute.For <IRequestConverter>();
            requestConverter.TryConvertToAbsolute(relativeRequest, replica).Returns(_ => absoluteRequest);

            transport = Substitute.For <ITransport>();
            transport.SendAsync(Arg.Any <Request>(), Arg.Any <TimeSpan>(), Arg.Any <CancellationToken>()).Returns(_ => response);

            sender = new RequestSender(configuration, storageProvider, responseClassifier, requestConverter, transport);
        }
Exemplo n.º 2
0
 public RequestSender(
     IClusterClientConfiguration configuration,
     IReplicaStorageProvider storageProvider,
     IResponseClassifier responseClassifier,
     IRequestConverter requestConverter)
 {
     this.configuration      = configuration;
     this.storageProvider    = storageProvider;
     this.responseClassifier = responseClassifier;
     this.requestConverter   = requestConverter;
 }
        public static async Task <IActionResult> RemoveItems(
            [HttpTrigger(AuthorizationLevel.Function, "delete", Route = "cart/{cartId}")]
            HttpRequest req,
            string cartId,
            [Inject] IRequestConverter <string[]> requestConverter,
            [Inject] ICartRepository repository,
            ILogger log)
        {
            var productIds = await requestConverter.ConvertAsync(req);

            await repository.RemoveItemsAsync(cartId, productIds);

            return(new NoContentResult());
        }
Exemplo n.º 4
0
    /// <summary>
    /// Initializes a new instance of the <see cref="HandshakeService"/> class.
    /// </summary>
    /// <param name="platformEnvironment">The <see cref="IResolvePlatformEnvironment"/> to use for resolving the current Runtime environment.</param>
    /// <param name="requestConverter">The <see cref="IRequestConverter"/> to use to parse incoming requests.</param>
    /// <param name="contractsCompatibility">The <see cref="IVerifyContractsCompatibility"/> to use to compare Contracts versions.</param>
    /// <param name="openTelemetryConfig">The <see cref="openTelemetryConfig"/>.</param>
    /// <param name="logger">The <see cref="ILogger"/> to use for logging.</param>
    public HandshakeService(
        IResolvePlatformEnvironment platformEnvironment,
        IRequestConverter requestConverter,
        IVerifyContractsCompatibility contractsCompatibility,
        IOptions <OpenTelemetryConfiguration> openTelemetryConfig,
        ILogger logger)
    {
        _platformEnvironment    = platformEnvironment;
        _requestConverter       = requestConverter;
        _contractsCompatibility = contractsCompatibility;
        _openTelemetryConfig    = openTelemetryConfig;
        _logger = logger;

        _runtimeVersion          = VersionInfo.CurrentVersion;
        _runtimeContractsVersion = Contracts.VersionInfo.CurrentVersion.ToVersion();
    }