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); }
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()); }
/// <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(); }