public void Verify_cannot_create_topic_permissions_2() { var container = GetContainerBuilder().BuildServiceProvider(); var result = container.GetService <IBrokerObjectFactory>() .Object <TopicPermissions>() .Create(x => { x.VirtualHost("HareDu"); x.Configure(c => { c.OnExchange("E4"); c.UsingReadPattern(".*"); c.UsingWritePattern(".*"); }); }) .GetResult(); result.HasFaulted.ShouldBeTrue(); result.Errors.Count.ShouldBe(1); result.DebugInfo.ShouldNotBeNull(); TopicPermissionsDefinition definition = result.DebugInfo.Request.ToObject <TopicPermissionsDefinition>(); definition.Exchange.ShouldBe("E4"); definition.Read.ShouldBe(".*"); definition.Write.ShouldBe(".*"); }
public async Task <Result> Create(Action <TopicPermissionsCreateAction> action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new TopicPermissionsCreateActionImpl(); action(impl); impl.Validate(); TopicPermissionsDefinition definition = impl.Definition.Value; Debug.Assert(definition != null); string url = $"api/topic-permissions/{impl.VirtualHostName.Value.ToSanitizedName()}/{impl.Username.Value}"; 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)); }