public async Task <Result> Define(string vhost, Action <VirtualHostLimitsConfigurator> configurator = null, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new VirtualHostLimitsConfiguratorImpl(); configurator?.Invoke(impl); impl.Validate(); VirtualHostLimitsRequest request = impl.Request.Value; var errors = new List <Error>(); errors.AddRange(impl.Errors.Value); if (string.IsNullOrWhiteSpace(vhost)) { errors.Add(new(){ Reason = "The name of the virtual host is missing." }); } string url = $"api/vhost-limits/vhost/{vhost.ToSanitizedName()}"; if (errors.Any()) { return new FaultedResult { DebugInfo = new (){ URL = url, Request = request.ToJsonString(Deserializer.Options), Errors = errors } } } ; return(await PutRequest(url, request, cancellationToken).ConfigureAwait(false)); }
public async Task Verify_cannot_define_limits4() { var services = GetContainerBuilder().BuildServiceProvider(); var result = await services.GetService <IBrokerObjectFactory>() .DefineVirtualHostLimits("HareDu5", x => { x.SetMaxConnectionLimit(0); }); Assert.Multiple(() => { Assert.IsTrue(result.HasFaulted); Assert.AreEqual(1, result.DebugInfo.Errors.Count); Assert.IsNotNull(result.DebugInfo); VirtualHostLimitsRequest request = result.DebugInfo.Request.ToObject <VirtualHostLimitsRequest>(Deserializer.Options); Assert.AreEqual(0, request.MaxConnectionLimit); }); }
public async Task Verify_cannot_define_limits9() { var services = GetContainerBuilder().BuildServiceProvider(); var result = await services.GetService <IBrokerObjectFactory>() .Object <VirtualHostLimits>() .Define(string.Empty, x => { x.SetMaxQueueLimit(100); x.SetMaxConnectionLimit(0); }); Assert.Multiple(() => { Assert.IsTrue(result.HasFaulted); Assert.AreEqual(2, result.DebugInfo.Errors.Count); Assert.IsNotNull(result.DebugInfo); VirtualHostLimitsRequest request = result.DebugInfo.Request.ToObject <VirtualHostLimitsRequest>(); Assert.AreEqual(100, request.MaxQueueLimit); Assert.AreEqual(0, request.MaxConnectionLimit); }); }