public void StorageEngineShouldReuseObjectsWithTheSameHash()
        {
            var input = new RootSerializationTestObject()
            {
                SubObject = new SubobjectTestObject()
                {
                    SomeProperty = "Foo"
                }
            };
            var input2 = new SubobjectTestObject()
            {
                SomeProperty = "Foo"
            };
            var fixture = createFixture();

            using (fixture)
                using (fixture.AsPrimaryEngine()) {
                    fixture.Save(input);
                    fixture.Save(input2);

                    var result = fixture.Load <RootSerializationTestObject>(input.ContentHash);
                    Assert.Equal(input.ContentHash, result.ContentHash);
                    Assert.Equal(input.SubObject.ContentHash, result.SubObject.ContentHash);
                    Assert.Equal(2, fixture.GetObjectCount());
                }
        }
        public void StorageEngineShouldActuallySerializeStuff()
        {
            var input = new SubobjectTestObject()
            {
                SomeProperty = "Foo"
            };
            var fixture = createFixture(0xbeef);
            SubobjectTestObject result;

            using (fixture)
                using (fixture.AsPrimaryEngine()) {
                    fixture.Save(input);
                    fixture.FlushChanges();

                    Assert.True(fixture.GetAllObjectHashes().Contains(input.ContentHash));

                    result = fixture.Load <SubobjectTestObject>(input.ContentHash);
                    Assert.Equal(input.ContentHash, result.ContentHash);
                    Assert.Equal(input.SomeProperty, result.SomeProperty);
                }

            fixture = createFixture(0xbeef);
            using (fixture)
                using (fixture.AsPrimaryEngine()) {
                    result = fixture.Load <SubobjectTestObject>(input.ContentHash);
                    Assert.Equal(input.ContentHash, result.ContentHash);
                    Assert.Equal(input.SomeProperty, result.SomeProperty);
                }
        }