public void CanDeserializeXmlWithWhitespace() { var str = @"<?xml version=""1.0"" encoding=""utf-8""?> <Messages xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns=""http://tempuri.net/CWServiceBus.Serializers.XML.Test"" xmlns:baseType=""CWServiceBus.IMessage""> <MessageWithArray> <SagaId>6bddc475-22a5-433b-a3ed-9edf00e8e353</SagaId> <SomeInts> <Int32>1405154</Int32> </SomeInts> </MessageWithArray> </Messages>"; var data = Encoding.UTF8.GetBytes(str); var serializer = SerializerFactory.Create <MessageWithArray>(); var messages = serializer.Deserialize(new MemoryStream(data)); Assert.NotNull(messages); Assert.That(messages, Has.Length.EqualTo(1)); Assert.That(messages[0], Is.TypeOf(typeof(MessageWithArray))); var m = (MessageWithArray)messages[0]; Assert.IsNotNull(m.SomeInts); Assert.That(m.SomeInts, Has.Length.EqualTo(1)); }
public void TestMultipleInterfacesDupolicatedPropery() { IMessageMapper mapper = new MessageMapper(); var serializer = SerializerFactory.Create <IThird>(); var msgBeforeSerialization = mapper.CreateInstance <IThird>(x => x.FirstName = "Danny"); var count = 0; using (var stream = new MemoryStream()) { serializer.Serialize(new[] { msgBeforeSerialization }, stream); stream.Position = 0; var reader = XmlReader.Create(stream); while (reader.Read()) { if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "FirstName")) { count++; } } } Assert.AreEqual(count, 1); }
public static T ForMessage <T>(object message) { var serializer = SerializerFactory.Create <T>(); using (var stream = new MemoryStream()) { serializer.Serialize(new[] { message }, stream); stream.Position = 0; var msgArray = serializer.Deserialize(stream); return((T)msgArray[0]); } }
public void Culture() { var serializer = SerializerFactory.Create <MessageWithDouble>(); double val = 65.36; var msg = new MessageWithDouble { Double = val }; Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); var stream = new MemoryStream(); serializer.Serialize(new[] { msg }, stream); Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); stream.Position = 0; var msgArray = serializer.Deserialize(stream); var m = msgArray[0] as MessageWithDouble; Assert.AreEqual(val, m.Double); stream.Dispose(); }
public void TestInterfaces() { IMessageMapper mapper = new MessageMapper(); var serializer = SerializerFactory.Create <IM2>(); var o = mapper.CreateInstance <IM2>(); o.Id = Guid.NewGuid(); o.Age = 10; o.Address = Guid.NewGuid().ToString(); o.Int = 7; o.Name = "udi"; o.Uri = new Uri("http://www.UdiDahan.com/"); o.Risk = new Risk { Percent = 0.15D, Annum = true, Accuracy = 0.314M }; o.Some = SomeEnum.B; o.Start = DateTime.Now; o.Duration = TimeSpan.Parse("-01:15:27.123"); o.Offset = DateTimeOffset.Now; o.Lookup = new MyDic(); o.Lookup["1"] = "1"; o.Foos = new Dictionary <string, List <Foo> >(); o.Foos["foo1"] = new List <Foo>(new[] { new Foo { Name = "1", Title = "1" }, new Foo { Name = "2", Title = "2" } }); o.Data = new byte[] { 1, 2, 3, 4, 5, 4, 3, 2, 1 }; o.SomeStrings = new List <string> { "a", "b", "c" }; o.ArrayFoos = new Foo[] { new Foo { Name = "FooArray1", Title = "Mr." }, new Foo { Name = "FooAray2", Title = "Mrs" } }; o.Bars = new Bar[] { new Bar { Name = "Bar1", Length = 1 }, new Bar { Name = "BAr2", Length = 5 } }; o.NaturalNumbers = new HashSet <int>(new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); o.Developers = new HashSet <string>(new string[] { "Udi Dahan", "Andreas Ohlund", "Matt Burton", "Jonathan Oliver et al" }); o.Parent = mapper.CreateInstance <IM1>(); o.Parent.Name = "udi"; o.Parent.Age = 10; o.Parent.Address = Guid.NewGuid().ToString(); o.Parent.Int = 7; o.Parent.Name = "-1"; o.Parent.Risk = new Risk { Percent = 0.15D, Annum = true, Accuracy = 0.314M }; o.Names = new List <IM1>(); for (int i = 0; i < number; i++) { var m1 = mapper.CreateInstance <IM1>(); o.Names.Add(m1); m1.Age = 10; m1.Address = Guid.NewGuid().ToString(); m1.Int = 7; m1.Name = i.ToString(); m1.Risk = new Risk { Percent = 0.15D, Annum = true, Accuracy = 0.314M }; } o.MoreNames = o.Names.ToArray(); IMessage[] messages = new IMessage[] { o }; Time(messages, serializer); }
public void When_Using_A_Dictionary_With_An_Object_As_Value_should_throw() { Assert.Throws <NotSupportedException>(() => SerializerFactory.Create <MessageWithDictionaryWithAnObjectAsValue>()); }