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>()); }
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); }
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); } }
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); } }
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); }