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 ExtendedStorageEngineGetRootObject() { var scheduler = new TestScheduler(); var fixture = createExtendedFixture(); scheduler.With(sched => { using (fixture) using (fixture.AsPrimaryEngine()) { var input = new RootSerializationTestObject() { SubObject = new SubobjectTestObject() { SomeProperty = "Foo" } }; var origHash = input.ContentHash; var syncPoint = fixture.CreateSyncPoint(input, null, DateTimeOffset.Now); // N.B. This doesn't appear to actually affect IScheduler.Now :-/ sched.AdvanceTo(sched.FromTimeSpan(TimeSpan.FromDays(1.0))); Assert.Equal(input.ContentHash, fixture.GetLatestRootObject <RootSerializationTestObject>().ContentHash); Assert.Equal(null, fixture.GetLatestRootObject <RootSerializationTestObject>("SomeWeirdQualifier")); Assert.Equal(null, fixture.GetLatestRootObject <RootSerializationTestObject>(null, DateTimeOffset.Now - TimeSpan.FromHours(1.0))); input.SomeInteger = 10; syncPoint = fixture.CreateSyncPoint(input, null, DateTimeOffset.Now + TimeSpan.FromDays(1.0)); Assert.Equal(origHash, fixture.GetLatestRootObject <RootSerializationTestObject>(null, DateTimeOffset.Now + TimeSpan.FromSeconds(1.0)).ContentHash); } return(0); }); }
public void SerializationItemSmokeTest() { var engine = new NullStorageEngine(); var input = new RootSerializationTestObject() { SubObject = new SubobjectTestObject() { SomeProperty = "Foo" } }; var serializer = createFixture(); string json = serializer.SerializedDataToString(serializer.Serialize(input)); // TODO: Finish this test }
public void CreateSyncPointSmokeTest() { var scheduler = new TestScheduler(); var fixture = createFixture(); scheduler.With(sched => { using (fixture) using (fixture.AsPrimaryEngine()) { var input = new RootSerializationTestObject() { SubObject = new SubobjectTestObject() { SomeProperty = "Foo" } }; var syncPoint = fixture.CreateSyncPoint(input); sched.AdvanceTo(sched.FromTimeSpan(TimeSpan.FromDays(1.0))); Assert.Equal(3, fixture.GetObjectCount()); Assert.True(fixture.GetAllObjectHashes().Contains(input.ContentHash)); Assert.True(fixture.GetAllObjectHashes().Contains(input.SubObject.ContentHash)); Assert.True(fixture.GetAllObjectHashes().Contains(syncPoint.ContentHash)); Assert.Equal(1, fixture.GetOrderedRevisionList(typeof(RootSerializationTestObject)).Length); Assert.Equal(0, fixture.GetOrderedRevisionList(typeof(RootSerializationTestObject), "WeirdQualifier").Length); input.SomeInteger = 10; syncPoint = fixture.CreateSyncPoint(input); Assert.Equal(5, fixture.GetObjectCount()); Assert.True(fixture.GetAllObjectHashes().Contains(input.ContentHash)); Assert.True(fixture.GetAllObjectHashes().Contains(input.SubObject.ContentHash)); Assert.True(fixture.GetAllObjectHashes().Contains(syncPoint.ContentHash)); Assert.Equal(2, fixture.GetOrderedRevisionList(typeof(RootSerializationTestObject)).Length); Assert.Equal(0, fixture.GetOrderedRevisionList(typeof(RootSerializationTestObject), "WeirdQualifier").Length); } return(0); }); }