public void Can_call_methods_on_wrapped_instance()
        {
            var data = new FreezableData()
            {
                Id = 42, Name = "Everything"
            };
            var data2 = Freezer.AsFreezable(data);

            Assert.IsTrue(data2.IsA <Freezer.IFreezableWrapper>());
            AssertSameValue(data, data2);
        }
        public void Can_detect_wrapped_instances()
        {
            var data = new FreezableData()
            {
                Id = 42, Name = "Everything"
            };

            Assert.IsFalse(Freezer.IsFreezable(data));
            var data2 = Freezer.AsFreezable(data);

            Assert.IsTrue(Freezer.IsFreezable(data2));
        }
 private void AssertSameValue(FreezableData first, FreezableData next)
 {
     Assert.AreEqual(first.Id, next.Id);
     Assert.AreEqual(first.Name, next.Name);
 }