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(); }
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\"}"); } } }
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(); }
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")); }
public void get_with_miss_in_database() { var serializer = new JilSerializer(); var map = new IdentityMap(serializer, null); map.Get <Target>(Guid.NewGuid(), () => null).ShouldBeNull(); }
public void has_negative() { var serializer = new JilSerializer(); var map = new IdentityMap(serializer, null); map.Has <Target>(Guid.NewGuid()).ShouldBeFalse(); }
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); }
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(); }
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); }
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); }
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); }
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); }
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); }
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 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); }
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); }
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); }
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(); }
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) })); }
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; }
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); }
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); }
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); }
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); }
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); }
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 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); }
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); }
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); }
public void has_negative() { var serializer = new JilSerializer(); var map = new DirtyTrackingIdentityMap(serializer, null); map.Has<Target>(Guid.NewGuid()).ShouldBeFalse(); }
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(); }
public void get_with_miss_in_database() { var serializer = new JilSerializer(); var map = new DirtyTrackingIdentityMap(serializer, null); map.Get<Target>(Guid.NewGuid(), () => null).ShouldBeNull(); }
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(); }
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(); }
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(); }
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); }
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); }
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); }
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 }); }
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(); }