예제 #1
0
        public void TestNonDefaultBundleOptions()
        {
            var defaultBundleOpt = new FluentBundleOption()
            {
                Locales       = { "en" },
                MaxPlaceable  = 123,
                UseIsolating  = false,
                TransformFunc = _transform,
                FormatterFunc = _formatter,
                Functions     = new Dictionary <string, ExternalFunction>()
                {
                    ["zero"] = _zeroFunc,
                    ["id"]   = _idFunc,
                }
            };
            var bundle = FluentBundle.MakeUnchecked(defaultBundleOpt);

            Assert.AreEqual(new CultureInfo("en"), bundle.Culture);
            Assert.AreEqual(defaultBundleOpt.FormatterFunc, bundle.FormatterFunc);
            Assert.AreEqual(defaultBundleOpt.TransformFunc, bundle.TransformFunc);
            Assert.AreEqual(defaultBundleOpt.UseIsolating, bundle.UseIsolating);
            Assert.AreEqual(defaultBundleOpt.MaxPlaceable, bundle.MaxPlaceable);
            Assert.IsTrue(bundle.TryGetFunction("zero", out var zero));
            Assert.AreEqual(_zeroFunc, zero?.Function);
            Assert.IsTrue(bundle.TryGetFunction("id", out var id));
            Assert.AreEqual(_idFunc, id?.Function);
        }
예제 #2
0
        public void TestDefaultBundleOptions()
        {
            var defaultBundleOpt = new FluentBundleOption();
            var bundle           = FluentBundle.MakeUnchecked(defaultBundleOpt);

            Assert.AreEqual(CultureInfo.CurrentCulture, bundle.Culture);
            Assert.IsNull(bundle.FormatterFunc);
            Assert.IsNull(bundle.TransformFunc);
            Assert.IsTrue(bundle.UseIsolating);
            Assert.AreEqual(100, bundle.MaxPlaceable);
        }
예제 #3
0
        public void TestConcurrencyOption()
        {
            var bundleOpt = new FluentBundleOption()
            {
                Locales       = { "en-US" },
                UseConcurrent = true,
            };
            var optBundle = FluentBundle.MakeUnchecked(bundleOpt);

            Parallel.For(0, 10, i => optBundle.AddResource($"term-1 = {i}", out _));
            Parallel.For(0, 10, i => optBundle.AddResource($"term-2= {i}", out _));
            Parallel.For(0, 10, i => optBundle.TryGetAttrMsg("term-1", null, out _, out _));
            Parallel.For(0, 10, i => optBundle.AddResourceOverriding($"term-2= {i + 1}"));
            Assert.True(optBundle.HasMessage("term-1"));
        }