public void StringInterned()
        {
            var obj = new StringInternedType {
                Foo = GetString(), Bar = GetString()
            };

            Assert.False(ReferenceEquals(obj.Foo, obj.Bar));
            var clone = Serializer.DeepClone(obj);

            Assert.Equal(obj.Foo, clone.Foo);
            Assert.Equal(obj.Bar, clone.Bar);
            Assert.True(ReferenceEquals(clone.Foo, clone.Bar));
        }
        public void StringInterned()
        {
            var model = RuntimeTypeModel.Create();

            model.InternStrings = true;

            var obj = new StringInternedType {
                Foo = GetString(), Bar = GetString()
            };

            Assert.False(ReferenceEquals(obj.Foo, obj.Bar));
            var clone = (StringInternedType)model.DeepClone(obj);

            Assert.Equal(obj.Foo, clone.Foo);
            Assert.Equal(obj.Bar, clone.Bar);
            Assert.True(ReferenceEquals(clone.Foo, clone.Bar));
        }
 public void StringInterned()
 {
     var obj = new StringInternedType { Foo = GetString(), Bar = GetString() };
     Assert.IsFalse(ReferenceEquals(obj.Foo, obj.Bar));
     var clone = Serializer.DeepClone(obj);
     Assert.AreEqual(obj.Foo, clone.Foo);
     Assert.AreEqual(obj.Bar, clone.Bar);
     Assert.IsTrue(ReferenceEquals(clone.Foo, clone.Bar));
 }