public void Verify_cannot_create_1() { var container = GetContainerBuilder().BuildServiceProvider(); var result = container.GetService <IBrokerObjectFactory>() .Object <ScopedParameter>() .Create <string>(x => { x.Parameter(string.Empty, "value"); x.Targeting(t => { t.Component("fake_component"); t.VirtualHost("HareDu"); }); }) .GetResult(); result.HasFaulted.ShouldBeTrue(); result.Errors.Count.ShouldBe(1); result.DebugInfo.ShouldNotBeNull(); ScopedParameterDefinition <string> definition = result.DebugInfo.Request.ToObject <ScopedParameterDefinition <string> >(); definition.Component.ShouldBe("fake_component"); definition.ParameterName.ShouldBeNullOrEmpty(); definition.ParameterValue.ShouldBe("value"); definition.VirtualHost.ShouldBe("HareDu"); }
public Task <Result> Create <T>(Action <ScopedParameterCreateAction <T> > action, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new ScopedParameterCreateActionImpl <T>(); action(impl); impl.Validate(); ScopedParameterDefinition <T> definition = impl.Definition.Value; Debug.Assert(definition != null); string url = $"api/parameters/{definition.Component}/{definition.VirtualHost.ToSanitizedName()}/{definition.ParameterName}"; if (impl.Errors.Value.Any()) { return(Task.FromResult <Result>(new FaultedResult(impl.Errors.Value, new DebugInfoImpl(url, definition.ToJsonString(Deserializer.Options))))); } return(Put(url, definition, cancellationToken)); }