Exemple #1
0
        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);
            });
        }