public override void SetResponse(JsonOperationContext context, BlittableJsonReaderObject response, bool fromCache)
            {
                if (response == null)
                {
                    Result = null;
                    return;
                }

                var deserialize = JsonDeserializationBase.GenerateJsonDeserializationRoutine <ResendListResult>();

                Result = deserialize.Invoke(response);
            }
        static unsafe RachisConsensusTestBase()
        {
            XunitLogging.RedirectStreams = false;
            XunitLogging.Init();
            XunitLogging.EnableExceptionCapture();

            NativeMemory.GetCurrentUnmanagedThreadId = () => (ulong)Pal.rvn_get_current_thread_id();
            RachisStateMachine.EnableDebugLongCommit = true;

            Lucene.Net.Util.UnmanagedStringArray.Segment.AllocateMemory = NativeMemory.AllocateMemory;
            Lucene.Net.Util.UnmanagedStringArray.Segment.FreeMemory     = NativeMemory.Free;
            JsonDeserializationCluster.Commands.Add(nameof(TestCommand), JsonDeserializationBase.GenerateJsonDeserializationRoutine <TestCommand>());
        }
Exemple #3
0
        public void CanSwitchDefaultComparerInTheDictionary()
        {
            var deserialize = JsonDeserializationBase.GenerateJsonDeserializationRoutine <MyClass>();

            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var djv = new DynamicJsonValue
                {
                    [nameof(MyClass.RegularDictionary)] = new DynamicJsonValue
                    {
                        ["Key1"] = "Value1",
                        ["Key2"] = "Value2",
                    },
                    [nameof(MyClass.InterfaceDictionary)] = new DynamicJsonValue
                    {
                        ["Key1"] = "Value1",
                        ["Key2"] = "Value2",
                    },
                    [nameof(MyClass.RegularDictionaryWithAttribute)] = new DynamicJsonValue
                    {
                        ["Key1"] = "Value1",
                        ["Key2"] = "Value2",
                    },
                    [nameof(MyClass.InterfaceDictionaryWithAttribute)] = new DynamicJsonValue
                    {
                        ["Key1"] = "Value1",
                        ["Key2"] = "Value2",
                    },
                };

                var json = context.ReadObject(djv, "item");

                var myClass = deserialize(json);

                Assert.Equal(StringComparer.Ordinal, GetComparer(myClass.RegularDictionary));
                Assert.Equal(StringComparer.Ordinal, GetComparer(myClass.InterfaceDictionary));
                Assert.Equal(StringComparer.InvariantCultureIgnoreCase, GetComparer(myClass.RegularDictionaryWithAttribute));
                Assert.Equal(StringComparer.OrdinalIgnoreCase, GetComparer(myClass.InterfaceDictionaryWithAttribute));

                myClass = DocumentConventions.Default.Serialization.DefaultConverter.FromBlittable <MyClass>(json);

                var dictionary = new Dictionary <string, object>();

                Assert.Equal(GetComparer(dictionary), GetComparer(myClass.RegularDictionary));
                Assert.Equal(GetComparer(dictionary), GetComparer(myClass.InterfaceDictionary));
                Assert.Equal(StringComparer.InvariantCultureIgnoreCase, GetComparer(myClass.RegularDictionaryWithAttribute));
                Assert.Equal(StringComparer.OrdinalIgnoreCase, GetComparer(myClass.InterfaceDictionaryWithAttribute));
            }
        }
            public override void SetResponse(JsonOperationContext context, BlittableJsonReaderObject response, bool fromCache)
            {
                if (response == null)
                {
                    return;
                }

                if (JsonDeserializationClient.CacheForTimeSeriesRangeResult.TryGetValue(typeof(TValues), out var func) == false)
                {
                    func = JsonDeserializationBase.GenerateJsonDeserializationRoutine <TimeSeriesRangeResult <TValues> >();
                    JsonDeserializationClient.CacheForTimeSeriesRangeResult.TryAdd(typeof(TValues), func);
                }

                Result = (TimeSeriesRangeResult <TValues>)func(response);
            }
Exemple #5
0
        public void UseInitialValuesIfNotFoundOnJson()
        {
            var fun = JsonDeserializationBase.GenerateJsonDeserializationRoutine <Foo>();

            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var djv = new DynamicJsonValue();

                var emptyBlittable = context.ReadObject(djv, "goo");

                var obj = fun(emptyBlittable);

                Assert.Equal(string.Empty, obj.Bar);
                Assert.Equal(new List <string>(), obj.ListOfStrings);
            }
        }
Exemple #6
0
        public void TimeSpanCanBeParsedFromStringIntAndDouble()
        {
            var deserialize = JsonDeserializationBase.GenerateJsonDeserializationRoutine <Test>();

            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var ts = TimeSpan.FromMinutes(77);

                var djv = new DynamicJsonValue
                {
                    [nameof(Test.NotNullable)] = ts,
                    [nameof(Test.Nullable)]    = ts
                };

                var json = context.ReadObject(djv, "json");

                var result = deserialize.Invoke(json);
                Assert.Equal(ts, result.NotNullable);
                Assert.Equal(ts, result.Nullable);

                djv = new DynamicJsonValue
                {
                    [nameof(Test.NotNullable)] = ts.TotalMilliseconds,
                    [nameof(Test.Nullable)]    = (long)ts.TotalMilliseconds
                };

                json = context.ReadObject(djv, "json");

                result = deserialize.Invoke(json);
                Assert.Equal(ts, result.NotNullable);
                Assert.Equal(ts, result.Nullable);

                djv = new DynamicJsonValue
                {
                    [nameof(Test.NotNullable)] = ts.TotalMilliseconds,
                    [nameof(Test.Nullable)]    = null
                };

                json = context.ReadObject(djv, "json");

                result = deserialize.Invoke(json);
                Assert.Equal(ts, result.NotNullable);
                Assert.Null(result.Nullable);
            }
        }
        public void UsingChars()
        {
            var deserialize = JsonDeserializationBase.GenerateJsonDeserializationRoutine <CharClass>();

            var djv = new DynamicJsonValue
            {
                [nameof(CharClass.CharWithValue)] = "a"
            };

            using (var context = JsonOperationContext.ShortTermSingleUse())
            {
                var json   = context.ReadObject(djv, "json");
                var result = deserialize.Invoke(json);

                Assert.Equal('a', result.CharWithValue);
                Assert.Equal(default(char), result.CharNoValue);
            }
        }
Exemple #8
0
 static RachisConsensusTestBase()
 {
     JsonDeserializationCluster.Commands.Add(nameof(TestCommand), JsonDeserializationBase.GenerateJsonDeserializationRoutine <TestCommand>());
 }
 static RachisConsensusTestBase()
 {
     NativeMemory.GetCurrentUnmanagedThreadId = () => (ulong)Pal.rvn_get_current_thread_id();
     JsonDeserializationCluster.Commands.Add(nameof(TestCommand), JsonDeserializationBase.GenerateJsonDeserializationRoutine <TestCommand>());
 }
        public void Generating_DictionaryDeserializationRoutine_should_work()
        {
            Func <BlittableJsonReaderObject, Dictionary <string, long> > deserializationFunc = JsonDeserializationBase.GenerateJsonDeserializationRoutine <Dictionary <string, long> >();

            Assert.NotNull(deserializationFunc);
        }