public async Task <Result> Create(string parameter, Action <GlobalParameterConfigurator> configurator, CancellationToken cancellationToken = default) { cancellationToken.RequestCanceled(); var impl = new GlobalParameterConfiguratorImpl(parameter); configurator?.Invoke(impl); impl.Validate(); GlobalParameterRequest request = impl.Request.Value; Debug.Assert(request != null); var errors = new List <Error>(); errors.AddRange(impl.Errors.Value); if (string.IsNullOrWhiteSpace(parameter)) { errors.Add(new ErrorImpl("The name of the parameter is missing.")); } string url = $"api/global-parameters/{parameter}"; if (errors.Any()) { return(new FaultedResult(new DebugInfoImpl(url, request.ToJsonString(Deserializer.Options), errors))); } return(await PutRequest(url, request, cancellationToken).ConfigureAwait(false)); }
public async Task Verify_can_create_parameter_2() { var services = GetContainerBuilder("TestData/ExchangeInfo.json").BuildServiceProvider(); var result = await services.GetService <IBrokerObjectFactory>() .Object <GlobalParameter>() .Create("fake_param", x => { x.Value(arg => { arg.Add("arg1", "value1"); arg.Add("arg2", 5); }); }); Assert.Multiple(() => { Assert.IsFalse(result.HasFaulted); Assert.IsNotNull(result.DebugInfo); GlobalParameterRequest request = result.DebugInfo.Request.ToObject <GlobalParameterRequest>(); Assert.AreEqual("fake_param", request.Name); Assert.AreEqual("value1", request.Value .ToString() .ToObject <IDictionary <string, object> >(Deserializer.Options)["arg1"].ToString()); Assert.AreEqual("5", request.Value .ToString() .ToObject <IDictionary <string, object> >(Deserializer.Options)["arg2"].ToString()); }); }
public async Task Verify_can_create_parameter2() { var services = GetContainerBuilder().BuildServiceProvider(); var result = await services.GetService <IBrokerObjectFactory>() .CreateGlobalParameter("fake_param", x => { x.Value("fake_value"); }); Assert.Multiple(() => { Assert.IsFalse(result.HasFaulted); Assert.IsNotNull(result.DebugInfo); GlobalParameterRequest request = result.DebugInfo.Request.ToObject <GlobalParameterRequest>(); Assert.AreEqual("fake_param", request.Name); Assert.AreEqual("fake_value", request.Value.ToString()); }); }
public async Task Verify_cannot_create_parameter_5() { var services = GetContainerBuilder().BuildServiceProvider(); var result = await services.GetService <IBrokerObjectFactory>() .Object <GlobalParameter>() .Create(string.Empty, x => { }); Assert.Multiple(() => { Assert.IsTrue(result.HasFaulted); Assert.IsNotNull(result.DebugInfo); Assert.AreEqual(2, result.DebugInfo.Errors.Count); GlobalParameterRequest request = result.DebugInfo.Request.ToObject <GlobalParameterRequest>(); Assert.That(request.Name, Is.Empty.Or.Null); Assert.IsNull(request.Value); }); }