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); } }