Ejemplo n.º 1
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());
                }
        }
Ejemplo n.º 2
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);
            });
        }
        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
        }
Ejemplo n.º 4
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);
            });
        }