Ejemplo n.º 1
0
        public void detect_changes_then_clear_the_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a));

            a1.Long++;

            var b1 = map.Get <Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get <Target>(c.Id, serializer.ToJson(c));

            c1.Long++;

            var d1 = map.Get <Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();

            changes.Each(x => x.ChangeCommitted());


            map.DetectChanges().Any().ShouldBeFalse();
        }
Ejemplo n.º 2
0
        public void end_to_end_test_using_the_transform()
        {
            using (var store = TestingDocumentStore.Basic())
            {
                var user = new User {
                    FirstName = "Jeremy", LastName = "Miller"
                };
                var json = new JilSerializer().ToCleanJson(user);

                var func = TransformFunction.ForFile(new StoreOptions(), "get_fullname.js");

                using (var conn = store.Advanced.OpenConnection())
                {
                    conn.Execute(cmd => cmd.Sql(func.GenerateFunction()).ExecuteNonQuery());

                    var actual = conn.Execute(cmd =>
                    {
                        return(cmd.Sql("select mt_transform_get_fullname(:json)")
                               .WithJsonParameter("json", json).ExecuteScalar().As <string>());
                    });

                    actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}");
                }
            }
        }
Ejemplo n.º 3
0
        public void detect_changes_with_multiple_dirties()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a));

            a1.Long++;

            var b1 = map.Get <Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get <Target>(c.Id, serializer.ToJson(c));

            c1.Long++;

            var d1 = map.Get <Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();

            changes.Count().ShouldBe(2);
            changes.Any(x => x.Id.As <Guid>() == a1.Id).ShouldBeTrue();
            changes.Any(x => x.Id.As <Guid>() == c1.Id).ShouldBeTrue();
        }
Ejemplo n.º 4
0
        public void write_multiple_calls_with_json_supplied()
        {
            // Just forcing the table and schema objects to be created
            var initialTarget = Target.Random();

            theSession.Store(initialTarget);
            theSession.SaveChanges();

            var batch = theStore.Advanced.CreateUpdateBatch();

            var target1 = Target.Random();
            var target2 = Target.Random();
            var target3 = Target.Random();

            var upsert = theMapping.UpsertFunction;

            var serializer = new JilSerializer();

            batch.Sproc(upsert).Param("docId", target1.Id).JsonBody("doc", serializer.ToJson(target1)).Param("docVersion", Guid.NewGuid()).Param("docDotNetType", typeof(Target).AssemblyQualifiedName);
            batch.Sproc(upsert).Param("docId", target2.Id).JsonBody("doc", serializer.ToJson(target2)).Param("docVersion", Guid.NewGuid()).Param("docDotNetType", typeof(Target).AssemblyQualifiedName);
            batch.Sproc(upsert).Param("docId", target3.Id).JsonBody("doc", serializer.ToJson(target3)).Param("docVersion", Guid.NewGuid()).Param("docDotNetType", typeof(Target).AssemblyQualifiedName);



            batch.Execute();
            batch.Connection.Dispose();

            var targets = theSession.Query <Target>().ToArray();

            targets.Any(x => x.Id == target1.Id).ShouldBeTrue();
            targets.Any(x => x.Id == target2.Id).ShouldBeTrue();
            targets.Any(x => x.Id == target3.Id).ShouldBeTrue();
        }
        public ActionResult GetList()
        {
            var           noteSrv = StaticServiceFactory.Create <IDashboardNoteService>();
            var           notes   = noteSrv.GetVisibleNotesByCurrentUser();
            JilSerializer ser     = new JilSerializer();

            return(Content(ser.SerializeToString(notes), "application/json"));
        }
Ejemplo n.º 6
0
        public void get_with_miss_in_database()
        {
            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            map.Get <Target>(Guid.NewGuid(), () => null).ShouldBeNull();
        }
Ejemplo n.º 7
0
        public void has_negative()
        {
            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            map.Has <Target>(Guid.NewGuid()).ShouldBeFalse();
        }
Ejemplo n.º 8
0
        static TMessage Roundtrip <TMessage>(TMessage message) where TMessage : class
        {
            var serializer          = new JilSerializer();
            var roundtrippedMessage =
                serializer.Deserialize(serializer.Serialize(new Message(new Dictionary <string, string>(), message)).Result)
                .Result;

            return(roundtrippedMessage.Body as TMessage);
        }
Ejemplo n.º 9
0
        public void has_positive()
        {
            var target     = Target.Random();
            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Has <Target>(target.Id).ShouldBeTrue();
        }
Ejemplo n.º 10
0
        public void retrieve()
        {
            var target     = Target.Random();
            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Retrieve <Target>(target.Id).ShouldBeTheSameAs(target);
        }
Ejemplo n.º 11
0
        public void get_with_json()
        {
            var serializer = new JilSerializer();
            var target = new Target();
            var json = serializer.ToJson(target);

            var map = new NulloIdentityMap(serializer);

            var target2 = map.Get<Target>(target.Id, json);
            target2.Id.ShouldBe(target.Id);
        }
        public void ShouldSetSerializer()
        {
            // Given
            var serializer    = new JilSerializer(Options.Default);
            var configuration = new ClientConfiguration();

            // When
            configuration.WithSerializer(serializer);

            // Then
            Assert.Equal(serializer, configuration.Serializer);
        }
Ejemplo n.º 13
0
        public void lazy_get_hit()
        {
            var serializer = new JilSerializer();
            var target     = new Target();
            var json       = serializer.ToJson(target);

            var map = new NulloIdentityMap(serializer);

            var target2 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, json));

            target2.Id.ShouldBe(target.Id);
        }
Ejemplo n.º 14
0
        public void store()
        {
            var target     = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);


            map.Get <Target>(target.Id, "").ShouldBeTheSameAs(target);
        }
Ejemplo n.º 15
0
        public void lazy_get_hit()
        {
            var serializer = new JilSerializer();
            var target = new Target();
            var json = serializer.ToJson(target);

            var map = new NulloIdentityMap(serializer);

            var target2 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, json));
            target2.Id.ShouldBe(target.Id);
           
        }
Ejemplo n.º 16
0
        public void get_with_json()
        {
            var serializer = new JilSerializer();
            var target     = new Target();
            var json       = serializer.ToJson(target);

            var map = new NulloIdentityMap(serializer);

            var target2 = map.Get <Target>(target.Id, json);

            target2.Id.ShouldBe(target.Id);
        }
Ejemplo n.º 17
0
        public void get_value_on_first_request()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, serializer.ToJson(target), null);

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Ejemplo n.º 18
0
        public void get_value_on_first_request_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer);

            var target2 = map.Get<Target>(target.Id, () => serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Ejemplo n.º 19
0
        public void get_value_on_first_request()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get<Target>(target.Id, serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Ejemplo n.º 20
0
        public void JsonNetPerformanceTests(int docCount, bool warmup)
        {
            Trace.WriteLine($"JsonNetPerformanceTests: warmup={docCount}, count={docCount}");
            var docs = new Fixture().CreateMany<TestDocument>(docCount).ToList();
            MiniProfiler.Start();
            var mp = MiniProfiler.Current;
            Trace.WriteLine("performance test on: " + docs.Count() + " docs");

            var jilSserializer = new JilSerializer();
            Trace.WriteLine("start JIL");
            if (warmup) jilSserializer.ToJson(new Fixture().Create<TestDocument>()); // warmup
            using (mp.Step("JIL serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                        jilSserializer.ToJson(doc);
                });
            }

            var jsonNetSerializer = new JsonNetSerializer();
            Trace.WriteLine("start JSONNET");
            if (warmup) jsonNetSerializer.ToJson(new Fixture().Create<TestDocument>()); // warmup
            using (mp.Step("JSONNET serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                        jsonNetSerializer.ToJson(doc);
                });
            }

            var textSerializer = new ServiceStackTextSerializer();
            Trace.WriteLine("start JSONNET");
            if (warmup) textSerializer.ToJson(new Fixture().Create<TestDocument>()); // warmup
            using (mp.Step("SERVICESTACK serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                        textSerializer.ToJson(doc);
                });
            }

            Trace.WriteLine($"trace: {mp.RenderPlainText()}");
            MiniProfiler.Stop();
        }
Ejemplo n.º 21
0
        private static UncommittedMessages GetUncommitedMessages()
        {
            var serializer = new JilSerializer();
            var payload    = serializer.Serialize(new TestContracts.MessageOne {
                ID = 1, Name = "Test data"
            });
            var contractName = TestContracts.GetContractNameByType(typeof(TestContracts.MessageOne));

            return(new UncommittedMessages(
                       Guid.NewGuid(),
                       new[]
            {
                new MessageRecord(Guid.NewGuid(), contractName, payload),
                new MessageRecord(Guid.NewGuid(), contractName, payload),
                new MessageRecord(Guid.NewGuid(), contractName, payload)
            }));
        }
Ejemplo n.º 22
0
 public ReduceCacheBlock(
     ApiAuth apiKey,
     IConnectionMultiplexer connection,
     Func <ExpandoObject, string> selector,
     Func <ExpandoObject, ExpandoObject> inputProjection)
     : base(capacity: 100000, procType: BlockType.Transform)
 {
     _keyBase = $"reduce_cache:{apiKey.AppId}";
     if (connection == null)
     {
         throw new Exception("No redis connection found!");
     }
     _serializer  = new JilSerializer();
     _cacheClient = new StackExchangeRedisCacheClient(connection, _serializer);
     //_redis = connection.GetDatabase(0);
     _groupBySelector = selector;
     _inputProjection = inputProjection;
 }
Ejemplo n.º 23
0
        public void get_value_on_first_request_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            var json         = serializer.ToJson(target);
            var clonedTarget = serializer.FromJson <Target>(json);

            var target2 = map.Get <Target>(target.Id, () =>
            {
                return(new FetchResult <Target>(clonedTarget, json, null));
            });

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Ejemplo n.º 24
0
        public void remove_item()
        {
            var target = Target.Random();
            var target2 = Target.Random();
            target2.Id = target.Id;

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer);

            var target3 = map.Get<Target>(target.Id, serializer.ToJson(target));

            // now remove it
            map.Remove<Target>(target.Id);

            var target4 = map.Get<Target>(target.Id, serializer.ToJson(target2));
            target4.ShouldNotBeNull();
            target4.ShouldNotBeTheSameAs(target3);

        }
Ejemplo n.º 25
0
        public void get_value_on_first_request_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var json = serializer.ToJson(target);
            var clonedTarget = serializer.FromJson<Target>(json);

            var target2 = map.Get<Target>(target.Id, () =>
            {
                
                return new FetchResult<Target>(clonedTarget, json);
            });

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Ejemplo n.º 26
0
        public void remove_item()
        {
            var target  = Target.Random();
            var target2 = Target.Random();

            target2.Id = target.Id;

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            var target3 = map.Get <Target>(target.Id, serializer.ToJson(target), null);

            // now remove it
            map.Remove <Target>(target.Id);

            var target4 = map.Get <Target>(target.Id, serializer.ToJson(target2), null);

            target4.ShouldNotBeNull();
            target4.ShouldNotBeTheSameAs(target3);
        }
Ejemplo n.º 27
0
        public void detect_changes_with_no_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a));
            var b1 = map.Get <Target>(a.Id, serializer.ToJson(b));
            var c1 = map.Get <Target>(a.Id, serializer.ToJson(c));
            var d1 = map.Get <Target>(a.Id, serializer.ToJson(d));

            // no changes

            map.DetectChanges().Any().ShouldBeFalse();
        }
        public void when_serializing_with_custom_options_excludeNulls()
        {
            // Given
            var guid = Guid.NewGuid();
            var data = new { SomeString = "some string value", SomeGuid = guid, NullValue = default(Uri) };
            string expected
                = string.Format("{{\"SomeGuid\":\"{0}\",\"SomeString\":\"some string value\"}}", guid);

            // When
            string actual;
            using (var stream = new MemoryStream())
            {
                JilSerializer.Options = Options.ISO8601ExcludeNullsIncludeInherited;
                ISerializer jilSerializer = new JilSerializer();
                jilSerializer.Serialize("application/json", data, stream);
                actual = Encoding.UTF8.GetString(stream.ToArray());
            }

            // Then
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 29
0
        public void get_value_on_subsequent_requests()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target3 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target4 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target5 = map.Get <Target>(target.Id, serializer.ToJson(target), null);

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
        public void when_serializing_with_custom_options_excludeNulls()
        {
            // Given
            var    guid = Guid.NewGuid();
            var    data = new { SomeString = "some string value", SomeGuid = guid, NullValue = default(Uri) };
            string expected
                = string.Format("{{\"SomeGuid\":\"{0}\",\"SomeString\":\"some string value\"}}", guid);

            // When
            string actual;

            using (var stream = new MemoryStream())
            {
                JilSerializer.Options = Options.ISO8601ExcludeNullsIncludeInherited;
                ISerializer jilSerializer = new JilSerializer();
                jilSerializer.Serialize("application/json", data, stream);
                actual = Encoding.UTF8.GetString(stream.ToArray());
            }

            // Then
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 31
0
        public void get_value_on_subsequent_requests()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target3 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target4 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target5 = map.Get<Target>(target.Id, serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
Ejemplo n.º 32
0
        public void get_value_on_subsequent_requests_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target3 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target4 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target5 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
Ejemplo n.º 33
0
        public void retrieve()
        {
            var target = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Retrieve<Target>(target.Id).ShouldBeTheSameAs(target);
        }
Ejemplo n.º 34
0
        public void has_negative()
        {
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);
            map.Has<Target>(Guid.NewGuid()).ShouldBeFalse();
        }
Ejemplo n.º 35
0
        public void has_positive()
        {
            var target = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Has<Target>(target.Id).ShouldBeTrue();

        }
Ejemplo n.º 36
0
        public void get_with_miss_in_database()
        {
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);
            map.Get<Target>(Guid.NewGuid(), () => null).ShouldBeNull();
        }
Ejemplo n.º 37
0
        public void detect_changes_then_clear_the_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            a1.Long++;

            var b1 = map.Get<Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(c.Id, serializer.ToJson(c));
            c1.Long++;

            var d1 = map.Get<Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();

            changes.Each(x => x.ChangeCommitted());


            map.DetectChanges().Any().ShouldBeFalse();
        }
Ejemplo n.º 38
0
        public void detect_changes_with_multiple_dirties()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            a1.Long++;

            var b1 = map.Get<Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(c.Id, serializer.ToJson(c));
            c1.Long++;

            var d1 = map.Get<Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();
            changes.Count().ShouldBe(2);
            changes.Any(x => x.Id.As<Guid>() == a1.Id).ShouldBeTrue();
            changes.Any(x => x.Id.As<Guid>() == c1.Id).ShouldBeTrue();
        }
Ejemplo n.º 39
0
        public void JsonNetPerformanceTests(int docCount, bool warmup)
        {
            Trace.WriteLine($"JsonNetPerformanceTests: warmup={docCount}, count={docCount}");
            var docs = new Fixture().CreateMany <TestDocument>(docCount).ToList();

            MiniProfiler.Start();
            var mp = MiniProfiler.Current;

            Trace.WriteLine("performance test on: " + docs.Count() + " docs");

            var jilSserializer = new JilSerializer();

            Trace.WriteLine("start JIL");
            if (warmup)
            {
                jilSserializer.ToJson(new Fixture().Create <TestDocument>());        // warmup
            }
            using (mp.Step("JIL serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                    {
                        jilSserializer.ToJson(doc);
                    }
                });
            }

            var jsonNetSerializer = new JsonNetSerializer();

            Trace.WriteLine("start JSONNET");
            if (warmup)
            {
                jsonNetSerializer.ToJson(new Fixture().Create <TestDocument>());        // warmup
            }
            using (mp.Step("JSONNET serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                    {
                        jsonNetSerializer.ToJson(doc);
                    }
                });
            }

            var textSerializer = new ServiceStackTextSerializer();

            Trace.WriteLine("start JSONNET");
            if (warmup)
            {
                textSerializer.ToJson(new Fixture().Create <TestDocument>());        // warmup
            }
            using (mp.Step("SERVICESTACK serialization"))
            {
                1.Times(i =>
                {
                    foreach (var doc in docs)
                    {
                        textSerializer.ToJson(doc);
                    }
                });
            }

            Trace.WriteLine($"trace: {mp.RenderPlainText()}");
            MiniProfiler.Stop();
        }
Ejemplo n.º 40
0
        public void Setup()
        {
            var jsonNetOptions = new JsonSerializerSettings
            {
                Formatting = Formatting.None,
                Converters = new JsonConverter[] {
                    new IsoDateTimeConverter {
                        DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
                    },
                    new LongToStringConverter(),
                },

                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                NullValueHandling     = NullValueHandling.Ignore
            };

            var serializeOptions = new JsonSerializerOptions
            {
                WriteIndented               = false,
                IgnoreNullValues            = false,
                PropertyNameCaseInsensitive = true,
                Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            };

            serializeOptions.Converters.Add(new ImplicitInt64Converter());
            serializeOptions.Converters.Add(new ImplicitUInt64Converter());
            serializeOptions.Converters.Add(new ImplicitDateTimeConverter());
            serializeOptions.Converters.Add(new ImplicitDateTimeOffsetConverter());

            var deserializeOptions = new JsonSerializerOptions
            {
                WriteIndented               = false,
                IgnoreNullValues            = true,
                PropertyNameCaseInsensitive = true,
                Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            };

            deserializeOptions.Converters.Add(new ImplicitInt16Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt16Converter());
            deserializeOptions.Converters.Add(new ImplicitInt32Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt32Converter());
            deserializeOptions.Converters.Add(new ImplicitInt64Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt64Converter());
            deserializeOptions.Converters.Add(new ImplicitDecimalConverter());
            deserializeOptions.Converters.Add(new ImplicitDoubleConverter());
            deserializeOptions.Converters.Add(new ImplicitSingleConverter());
            deserializeOptions.Converters.Add(new ImplicitByteConverter());
            deserializeOptions.Converters.Add(new ImplicitSByteConverter());
            deserializeOptions.Converters.Add(new ImplicitDateTimeConverter());
            deserializeOptions.Converters.Add(new ImplicitDateTimeOffsetConverter());

            serializeToStringObject = new
            {
                int16    = 111.ToString(),
                uint16   = ushort.MaxValue.ToString(),
                int32    = int.MaxValue.ToString(),
                uint32   = uint.MaxValue.ToString(),
                int32N   = "".ToString(),
                int64    = 12321.ToString(),
                uint64   = ulong.MaxValue.ToString(),
                boolean  = true,
                decimalV = decimal.MaxValue.ToString(),
                doubleV  = "1.123445767",
                floatV   = "1.1111",
                byteV    = byte.MaxValue.ToString(),
                sbyteV   = sbyte.MaxValue.ToString(),
                charV    = 'c',
                date     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                date1    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                arr      = new string[] { "a", "b" },
                TestEnum = TestEnum.Approved
            };

            jsonFromString = JsonConvert.SerializeObject(serializeToStringObject, jsonNetOptions);

            serializeToStringClass = (TestClass)JsonConvert.DeserializeObject(jsonFromString, typeof(TestClass), jsonNetOptions);

            jsonNetSerializer  = new JsonNetSerializer(jsonNetOptions);
            textJsonSerializer = new TextJsonSerializer(serializeOptions, deserializeOptions);
            jilSerializer      = new JilSerializer();

            dataContractSerializer = new DataContractSerializer();
#if !NET5_0
            binarySerializer = new BinarySerializer();
#endif
            protoBufSerializer = new ProtoBufSerializer();

            NetSerializer.Serializer instance = new NetSerializer.Serializer(new[] { typeof(TestClass) });
            netSerializer = new NETSerializer(instance);

            dataContractFromString = dataContractSerializer.SerializeToString(serializeToStringClass);
#if !NET5_0
            binaryFromString = binarySerializer.SerializeToString(serializeToStringClass);
#endif
            protoBufFromString      = protoBufSerializer.SerializeToString(serializeToStringClass);
            netSerializerFromString = netSerializer.SerializeToString(serializeToStringClass);

            jilFromString = jilSerializer.SerializeToString(serializeToStringClass);
        }
Ejemplo n.º 41
0
        public void get_value_on_subsequent_requests_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer);

            var target2 = map.Get<Target>(target.Id, () => serializer.ToJson(target));
            var target3 = map.Get<Target>(target.Id, () => serializer.ToJson(target));
            var target4 = map.Get<Target>(target.Id, () => serializer.ToJson(target));
            var target5 = map.Get<Target>(target.Id, () => serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
Ejemplo n.º 42
0
        public void store()
        {
            var target = Target.Random();
            var serializer = new JilSerializer();

            var map = new IdentityMap(serializer);

            map.Store(target.Id, target);


            map.Get<Target>(target.Id, "").ShouldBeTheSameAs(target);
        }
Ejemplo n.º 43
0
        private BackstageJob createJob(BackstageJobOrder order)
        {
            string server, sargs;

            server = string.IsNullOrEmpty(JobServiceConfig.Instance.Server) ? Environment.MachineName : JobServiceConfig.Instance.Server;
            sargs  = string.Empty;
            if (order.Args != null)
            {
                var body = (NewExpression)order.Args.Body;

                var names = body.Members.Select(x => x.Name).ToList();

                var dic = new Dictionary <string, object>();
                var obj = order.Args.Compile()();
                foreach (var name in names)
                {
                    dic.Add(name, obj.TryGetValue(name));
                }

                var sdic = new Dictionary <string, string>();
                foreach (var entry in dic)
                {
                    if (entry.Value == null)
                    {
                        sdic.Add(entry.Key, "__NULL__");
                    }
                    else
                    {
                        var entrySer = Serializer.GetFastestKnownSerializer(entry.Value.GetType());
                        sdic.Add(entry.Key, Serializer.FastFullSerialize(entry.Value, entrySer));
                    }
                }
                var ser = new JilSerializer();
                sargs = Serializer.FastFullSerialize(sdic, ser);
            }

            string stags = order.Tags == null ? null : String.Join(";", order.Tags);

            if (!String.IsNullOrEmpty(stags) && stags.Length > 50)
            {
                stags = stags.Substring(0, 50);
            }

            var priority = order.Priority;

            if (priority == 0)
            {
                priority = Constants.BackstageJobs.Priorities.Normal;
            }

            return(new BackstageJob
            {
                Action = order.Action,
                Service = order.Service,
                SerializedArgs = sargs,
                Priority = priority,
#if DEBUG
                RemoveIfSuccess = false,
#else
                RemoveIfSuccess = !order.Debug,
#endif
                RetryCount = 1,
                RunAs = Authenticater.Value.CurrentIdentity.Name,
                Status = States.New,
                TimeToRun = order.TimeToRun ?? DateTime.Now,
                UniqueCode = order.Code,
                Dependency = order.Dependency,
                Queue = string.IsNullOrEmpty(order.Queue) ? Constants.BackstageJobs.Queue.Default : order.Queue,
                Server = server,
                Tags = stags,
                Debug = order.Debug
            });
        }
Ejemplo n.º 44
0
        public void detect_changes_with_no_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            var b1 = map.Get<Target>(a.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(a.Id, serializer.ToJson(c));
            var d1 = map.Get<Target>(a.Id, serializer.ToJson(d));

            // no changes

            map.DetectChanges().Any().ShouldBeFalse();
        }