public void AddAndRemovedEntriesFromDictionary()
        {
            var storage = new InMemoryStorageEngine();
            var os      = ObjectStore2.New(storage);
            var s       = new CSet <Person>();

            os.Roots.Entangle(s);

            var peter = new Person {
                Name = "Peter"
            };
            var ole = new Person {
                Name = "Ole", Relationship = peter
            };

            s.Add(peter);
            s.Add(ole);

            os.Persist();

            os = ObjectStore2.Load(storage);
            s  = os.Roots.Find <CSet <Person> >();

            s.Count.ShouldBe(2);
            peter = s.Single(p => p.Name == "Peter");
            ole   = s.Single(p => p.Name == "Ole");

            ole.Relationship.ShouldBe(peter);

            s.Remove(ole);
            os.Persist();

            os = ObjectStore2.Load(storage);
            s  = os.Roots.Find <CSet <Person> >();

            s.Count.ShouldBe(1);
            peter = s.Single(p => p.Name == "Peter");
            s.Add(peter);

            s.Count.ShouldBe(1);

            os.Persist();
            os = ObjectStore2.Load(storage);
            s  = os.Roots.Find <CSet <Person> >();

            s.Count.ShouldBe(1);
            peter = s.Single(p => p.Name == "Peter");
            s.Remove(peter);

            os.Persist();

            os = ObjectStore2.Load(storage);
            s  = os.Roots.Find <CSet <Person> >();
            s.Count.ShouldBe(0);
        }
Esempio n. 2
0
        public void ElementsAddedAndRemovedToListAreAddedToStateMap()
        {
            var set = new CSet <int> {
                0, 1
            };

            AttachAndPersist(set);

            set.Remove(0);
            set.Remove(1);

            Persist();

            set = Load <CSet <int> >();
            set.Count.ShouldBe(0);
        }
 public void UntangleAnonymously(object instance) => _anonymousRoots.Remove(instance);
 public void Untangle(object persistable) => _roots.Remove(persistable);