public void ListOfEmbeddedObjects_CanSetItems()
        {
            var parent = new ObjectWithEmbeddedProperties();

            _realm.Write(() =>
            {
                _realm.Add(parent);
            });

            var list = parent.ListOfAllTypesObjects;

            _realm.Write(() =>
            {
                parent.ListOfAllTypesObjects.Add(new EmbeddedAllTypesObject
                {
                    StringProperty = "first"
                });
            });

            Assert.That(list.Count, Is.EqualTo(1));

            var firstItem = list[0];

            Assert.That(firstItem.StringProperty, Is.EqualTo("first"));

            _realm.Write(() =>
            {
                list[0] = new EmbeddedAllTypesObject
                {
                    StringProperty = "updated"
                };
            });

            Assert.That(list.Count, Is.EqualTo(1));
            Assert.That(firstItem.IsValid, Is.False);
            Assert.That(list[0].StringProperty, Is.EqualTo("updated"));
        }
        public void DictionaryOfEmbeddedObjects_CanSetItems()
        {
            var parent = new ObjectWithEmbeddedProperties();

            _realm.Write(() =>
            {
                _realm.Add(parent);
            });

            var dict = parent.DictionaryOfAllTypesObjects;

            _realm.Write(() =>
            {
                parent.DictionaryOfAllTypesObjects.Add("a", new EmbeddedAllTypesObject
                {
                    StringProperty = "first"
                });
            });

            Assert.That(dict.Count, Is.EqualTo(1));

            var firstItem = dict["a"];

            Assert.That(firstItem.StringProperty, Is.EqualTo("first"));

            _realm.Write(() =>
            {
                dict["a"] = new EmbeddedAllTypesObject
                {
                    StringProperty = "updated"
                };
            });

            Assert.That(dict.Count, Is.EqualTo(1));
            Assert.That(firstItem.IsValid, Is.False);
            Assert.That(dict["a"].StringProperty, Is.EqualTo("updated"));
        }