コード例 #1
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
        }
コード例 #2
0
        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;
            });
        }
コード例 #3
0
        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;
            });
        }
コード例 #4
0
        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());
            }
        }