Exemplo n.º 1
0
        public void Verify_cannot_define_limits_1()
        {
            var container = GetContainerBuilder().BuildServiceProvider();
            var result    = container.GetService <IBrokerObjectFactory>()
                            .Object <VirtualHostLimits>()
                            .Define(x =>
            {
                x.VirtualHost(string.Empty);
                x.Configure(c =>
                {
                    c.SetMaxQueueLimit(100);
                    c.SetMaxConnectionLimit(1000);
                });
            })
                            .GetResult();

            result.HasFaulted.ShouldBeTrue();
            result.Errors.Count.ShouldBe(1);
            result.DebugInfo.ShouldNotBeNull();

            VirtualHostLimitsDefinition definition = result.DebugInfo.Request.ToObject <VirtualHostLimitsDefinition>();

            definition.MaxConnectionLimit.ShouldBe <ulong>(1000);
            definition.MaxQueueLimit.ShouldBe <ulong>(100);
        }
Exemplo n.º 2
0
        public async Task <Result> Define(Action <VirtualHostConfigureLimitsAction> action, CancellationToken cancellationToken = default)
        {
            cancellationToken.RequestCanceled();

            var impl = new VirtualHostConfigureLimitsActionImpl();

            action(impl);

            impl.Validate();

            VirtualHostLimitsDefinition definition = impl.Definition.Value;

            string url = $"api/vhost-limits/vhost/{impl.VirtualHostName.Value.ToSanitizedName()}";

            if (impl.Errors.Value.Any())
            {
                return(new FaultedResult(impl.Errors.Value, new DebugInfoImpl(url, definition.ToJsonString(Deserializer.Options))));
            }

            return(await Put(url, definition, cancellationToken).ConfigureAwait(false));
        }