Ejemplo n.º 1
0
        public void RootChildUndoCancel()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            EditableGetSet initialChild = root.ManagedChild;

            Assert.AreEqual(1, initialChild.EditLevel, "Child edit level after being created");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.CancelEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after CancelEdit");
            EditableGetSet secondChild = root.ManagedChild;

            Assert.AreEqual(0, secondChild.EditLevel, "Second child edit level after being created");
            Assert.IsFalse(ReferenceEquals(initialChild, secondChild), "Child objects should be different");

            Assert.IsTrue(root.IsDirty, "Root should be dirty after second child created");
        }
Ejemplo n.º 2
0
        public void RootUndoCancel()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            Assert.IsFalse(root.IsDirty, "Root should not start dirty");

            Assert.AreEqual("", root.FieldBackedString, "Explicit String should default to string.Empty");
            Assert.AreEqual("", root.ManagedStringField, "Managed String should default to string.Empty");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after defaults load");

            root.BeginEdit();
            root.FieldBackedString  = "fieldBackedString";
            root.ManagedStringField = "ManagedStringField";
            Assert.AreEqual("fieldBackedString", root.FieldBackedString, "String should be fieldBackedString");
            Assert.AreEqual("ManagedStringField", root.ManagedStringField, "String should be ManagedStringField");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.CancelEdit();
            Assert.AreEqual("", root.FieldBackedString, "Explicit String should revert to string.Empty");
            Assert.AreEqual("", root.ManagedStringField, "Managed String should revert to string.Empty");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
        }
Ejemplo n.º 3
0
        public void RootChildListUndoCancel()
        {
            IDataPortal <EditableGetSet>      dataPortal      = _testDIContext.CreateDataPortal <EditableGetSet>();
            IChildDataPortal <EditableGetSet> childDataPortal = _testDIContext.CreateChildDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            ChildList list = root.ManagedChildList;

            Assert.AreEqual(1, list.EditLevel, "List edit level after being created");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
            Assert.IsFalse(list.IsDirty, "List should not be dirty");

            list.Add(EditableGetSet.NewChildObject(childDataPortal));
            Assert.AreEqual(1, list.Count, "List count should be 1");

            root.CancelEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after CancelEdit");
            ChildList secondList = root.ManagedChildList;

            Assert.AreEqual(0, secondList.EditLevel, "Second list edit level after CancelEdit");
            Assert.IsFalse(ReferenceEquals(list, secondList), "List objects should not be the same");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after CancelEdit");
            Assert.IsFalse(secondList.IsDirty, "Second list should not be dirty");
        }
Ejemplo n.º 4
0
        public void ManagedFieldBaseProperties()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            root.PropertyChanging += new PropertyChangingEventHandler(root_PropertyChanging);

            root.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
            Assert.AreEqual("", root.Base, "String should default to string.Empty");
            Assert.AreEqual("", root.TopBase, "TopBase should default to string.Empty");

            root.Base = "hi there";
            Assert.AreEqual("hi there", root.Base, "String should have been set");

            Assert.AreEqual("Base", _changingName, "Base should have been changing");

            Assert.AreEqual("Base", _changedName, "Base should have changed");

            root.TopBase = "hi there";
            Assert.AreEqual("hi there", root.TopBase, "TopBase should have been set");

            Assert.AreEqual("TopBase", _changingName, "TopBase should have been changing");

            Assert.AreEqual("TopBase", _changedName, "TopBase should have changed");

            root.M05 = true;
            Assert.AreEqual(true, root.M05, "bool should have been set");


            root.PropertyChanging -= new PropertyChangingEventHandler(root_PropertyChanging);

            root.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
        }
Ejemplo n.º 5
0
        public void ExplicitFieldProperties()
        {
            EditableGetSet root = new EditableGetSet();

            root.PropertyChanging += new PropertyChangingEventHandler(root_PropertyChanging);
            root.PropertyChanged  += new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
            Assert.AreEqual("n/a", root.F03, "Default value should have been set");
            Assert.AreEqual("", root.FieldBackedString, "String should default to string.Empty");
            Assert.AreEqual(0, root.F02, "Numeric should default to 0");
            Assert.AreEqual(false, root.F05, "bool should default to false");

            root.FieldBackedString = "hi there";
            Assert.AreEqual("hi there", root.FieldBackedString, "String should have been set");

            Assert.AreEqual("FieldBackedString", _changingName, "FieldBackedString should have been changing");

            Assert.AreEqual("FieldBackedString", _changedName, "FieldBackedString should have changed");

            root.F02 = 123;
            Assert.AreEqual(123, root.F02, "Numeric should have been set");

            root.F05 = true;
            Assert.AreEqual(true, root.F05, "bool should have been set");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.PropertyChanging -= new PropertyChangingEventHandler(root_PropertyChanging);
            root.PropertyChanged  -= new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
        }
Ejemplo n.º 6
0
        public void RootChildUndoCancel()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            EditableGetSet initialChild = root.ManagedChild;

            Assert.AreEqual(1, initialChild.EditLevel, "Child edit level after being created");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.CancelEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after CancelEdit");
            EditableGetSet secondChild = root.ManagedChild;

            Assert.AreEqual(0, secondChild.EditLevel, "Second child edit level after being created");
#if !SILVERLIGHT
            Assert.IsFalse(ReferenceEquals(initialChild, secondChild), "Child objects should be different");
#endif

            Assert.IsTrue(root.IsDirty, "Root should be dirty after second child created");
        }
Ejemplo n.º 7
0
        public void RootUndoCancel()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.IsFalse(root.IsDirty, "Root should not start dirty");

            Assert.AreEqual("", root.FieldBackedString, "Explicit String should default to string.Empty");
            Assert.AreEqual("", root.ManagedStringField, "Managed String should default to string.Empty");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after defaults load");

            root.BeginEdit();
            root.FieldBackedString  = "fieldBackedString";
            root.ManagedStringField = "ManagedStringField";
            Assert.AreEqual("fieldBackedString", root.FieldBackedString, "String should be fieldBackedString");
            Assert.AreEqual("ManagedStringField", root.ManagedStringField, "String should be ManagedStringField");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.CancelEdit();
            Assert.AreEqual("", root.FieldBackedString, "Explicit String should revert to string.Empty");
            Assert.AreEqual("", root.ManagedStringField, "Managed String should revert to string.Empty");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
        }
Ejemplo n.º 8
0
        public void If_FieldBackedString_Is_Changed_On_GrandChild_List_Item_After_Root_Is_Deserialized_Then_Root_ChildChanged_Event_Fires()
        {
            var root       = new EditableGetSet();
            var child      = new EditableGetSet(true);
            var grandChild = new EditableGetSet(true);

            root.ManagedChildList.Add(child);
            child.ManagedChildList.Add(grandChild);

            byte[] buffer = MobileFormatter.Serialize(root);
            root = (EditableGetSet)MobileFormatter.Deserialize(buffer);

            int changed = 0;

            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChildList[0].ManagedChildList[0].FieldBackedString = "changed";
            Assert.AreEqual(1, changed, "after MobileFormatter");

#if !SILVERLIGHT
            changed            = 0;
            root               = root.Clone();
            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChildList[0].ManagedChildList[0].FieldBackedString = "changed again";
            Assert.AreEqual(1, changed, "after clone");
#endif
        }
Ejemplo n.º 9
0
        public void RootChildListUndoCancel()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            ChildList list = root.ManagedChildList;

            Assert.AreEqual(1, list.EditLevel, "List edit level after being created");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
            Assert.IsFalse(list.IsDirty, "List should not be dirty");

            list.Add(new EditableGetSet(true));
            Assert.AreEqual(1, list.Count, "List count should be 1");

            root.CancelEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after CancelEdit");
            ChildList secondList = root.ManagedChildList;

            Assert.AreEqual(0, secondList.EditLevel, "Second list edit level after CancelEdit");
            Assert.IsFalse(ReferenceEquals(list, secondList), "List objects should not be the same");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after CancelEdit");
            Assert.IsFalse(secondList.IsDirty, "Second list should not be dirty");
        }
Ejemplo n.º 10
0
        public void ManagedFieldProperties()
        {
            EditableGetSet root = new EditableGetSet();

            root.PropertyChanging += new PropertyChangingEventHandler(root_PropertyChanging);
            root.PropertyChanged  += new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
            Assert.AreEqual("n/a", root.M03, "Default value should have been set");
            Assert.AreEqual("", root.ManagedStringField, "String should default to string.Empty");
            Assert.AreEqual(0, root.M02, "Numeric should default to 0");
            Assert.AreEqual(false, root.M05, "bool should default to false");

            root.ManagedStringField = "hi there";
            Assert.AreEqual("hi there", root.ManagedStringField, "String should have been set");
            Assert.AreEqual("ManagedStringField", _changingName, "ManagedStringField should have been changing");
            Assert.AreEqual("ManagedStringField", _changedName, "ManagedStringField should have changed");

            _changedName  = string.Empty;
            _changingName = string.Empty;

            root.ManagedStringField = "hi there";
            Assert.AreEqual("hi there", root.ManagedStringField, "String should be the same");
            Assert.AreEqual(string.Empty, _changingName, "ManagedStringField should not have been changing");

            Assert.AreEqual(string.Empty, _changedName, "ManagedStringField should not have changed");

            root.M02 = 123;
            Assert.AreEqual(123, root.M02, "Numeric should have been set");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.PropertyChanging -= new PropertyChangingEventHandler(root_PropertyChanging);

            root.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
        }
Ejemplo n.º 11
0
        public void ManagedFieldBaseProperties()
        {
            EditableGetSet root = new EditableGetSet();

            root.PropertyChanging += new PropertyChangingEventHandler(root_PropertyChanging);

            root.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
            Assert.AreEqual("", root.Base, "String should default to string.Empty");
            Assert.AreEqual("", root.TopBase, "TopBase should default to string.Empty");

            root.Base = "hi there";
            Assert.AreEqual("hi there", root.Base, "String should have been set");

            Assert.AreEqual("Base", _changingName, "Base should have been changing");

            Assert.AreEqual("Base", _changedName, "Base should have changed");

            root.TopBase = "hi there";
            Assert.AreEqual("hi there", root.TopBase, "TopBase should have been set");

            Assert.AreEqual("TopBase", _changingName, "TopBase should have been changing");

            Assert.AreEqual("TopBase", _changedName, "TopBase should have changed");

            root.M05 = true;
            Assert.AreEqual(true, root.M05, "bool should have been set");


            root.PropertyChanging -= new PropertyChangingEventHandler(root_PropertyChanging);

            root.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(root_PropertyChanged);
        }
Ejemplo n.º 12
0
        public void LazyLoadChild_GetBeforeSet()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            var root  = EditableGetSet.GetObject(dataPortal);
            var child = root.LazyChild;
        }
Ejemplo n.º 13
0
        public void RootChildListUndoApply()
        {
            var root = new EditableGetSet();

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            var childList = root.ManagedChildList;

            Assert.AreEqual(1, childList.EditLevel, "List edit level after being created");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
            Assert.IsFalse(childList.IsDirty, "List should not be dirty");

            childList.Add(new EditableGetSet(true));
            Assert.AreEqual(1, childList.Count, "List count should be 1");

            root.ApplyEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after ApplyEdit");
            var secondChildList = root.ManagedChildList;

            Assert.AreEqual(0, secondChildList.EditLevel, "Second list edit level after ApplyEdit");
            Assert.IsTrue(ReferenceEquals(childList, secondChildList), "List objects should be the same");

            Assert.IsTrue(root.IsDirty, "Root should be dirty after ApplyEdit");
            Assert.IsTrue(secondChildList.IsDirty, "Second list should be dirty");

            root = root.Save();

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after Save");
            Assert.IsFalse(root.ManagedChildList.IsDirty, "List should not be dirty after Save");
        }
Ejemplo n.º 14
0
        public void If_FieldBackedString_Is_Changed_On_GrandChild_List_Item_After_Root_Is_Deserialized_Then_Root_ChildChanged_Event_Fires()
        {
            IDataPortal <EditableGetSet>      dataPortal      = _testDIContext.CreateDataPortal <EditableGetSet>();
            IChildDataPortal <EditableGetSet> childDataPortal = _testDIContext.CreateChildDataPortal <EditableGetSet>();

            var root       = EditableGetSet.GetObject(dataPortal);
            var child      = EditableGetSet.NewChildObject(childDataPortal);
            var grandChild = EditableGetSet.NewChildObject(childDataPortal);

            root.ManagedChildList.Add(child);
            child.ManagedChildList.Add(grandChild);

            var             applicationContext = _testDIContext.CreateTestApplicationContext();
            MemoryStream    stream             = new MemoryStream();
            MobileFormatter formatter          = new MobileFormatter(applicationContext);

            formatter.Serialize(stream, root);
            stream.Seek(0, SeekOrigin.Begin);
            root = (EditableGetSet)formatter.Deserialize(stream);

            int changed = 0;

            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChildList[0].ManagedChildList[0].FieldBackedString = "changed";
            Assert.AreEqual(1, changed, "after MobileFormatter");

            changed            = 0;
            root               = root.Clone();
            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChildList[0].ManagedChildList[0].FieldBackedString = "changed again";
            Assert.AreEqual(1, changed, "after clone");
        }
Ejemplo n.º 15
0
        public void If_ManagedStringField_Property_Changes_ChildChanged_Event_Should_Not_Fire()
        {
            var root = new EditableGetSet();

            root.ChildChanged      += (o, e) => { throw new InvalidOperationException(); };
            root.ManagedStringField = "test";
        }
Ejemplo n.º 16
0
        public void If_FieldBackedString_Changes_On_GrandChild_Then_ChildChanged_Fires_On_GrandChild_Child_and_Root()
        {
            int rootChanged               = 0;
            int childListChanged          = 0;
            int grandChildListChanged     = 0;
            int childChanged              = 0;
            int grandChildPropertyChanged = 0;

            var root = new EditableGetSet();

            root.PropertyChanged += (o, e) => { throw new InvalidOperationException(); };
            root.ChildChanged    += (o, e) => { rootChanged++; };
            root.ManagedChildList.ChildChanged += (o, e) => { childListChanged++; };

            var child = new EditableGetSet(true);

            child.PropertyChanged += (o, e) => { throw new InvalidOperationException(); };
            child.ChildChanged    += (o, e) => { childChanged++; };
            child.ManagedChildList.ChildChanged += (o, e) => { grandChildListChanged++; };

            var grandChild = new EditableGetSet(true);

            grandChild.ChildChanged    += (o, e) => { throw new InvalidOperationException(); }; // ChildChange only fires when child of self changes
            grandChild.PropertyChanged += (o, e) => { grandChildPropertyChanged++; };

            root.ManagedChildList.Add(child);
            child.ManagedChildList.Add(grandChild);
            root.ManagedChildList[0].ManagedChildList[0].FieldBackedString = "child change"; // or c2.FieldBackedString = "child change";

            Assert.AreEqual(7, rootChanged);                                                 //Child, and GrandChild lists lazy loaded + Property changed on GrandChildList Item
            Assert.AreEqual(4, childChanged);                                                //GrandChild lists lazy loaded + Property changed on GrandChildList Item
            Assert.AreEqual(4, childListChanged);                                            //GrandChild lists lazy loaded + Property changed on GrandChildList Item
            Assert.AreEqual(1, grandChildListChanged);                                       //Property changed on GrandChildList Item
            Assert.AreEqual(1, grandChildPropertyChanged);                                   //Property changed on GrandChildList Item
        }
Ejemplo n.º 17
0
        public void RootChildUndoApply()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.AreEqual(0, root.EditLevel, "Root edit level before BeginEdit");
            root.BeginEdit();
            Assert.AreEqual(1, root.EditLevel, "Root edit level after BeginEdit");

            EditableGetSet initialChild = root.ManagedChild;

            Assert.AreEqual(1, initialChild.EditLevel, "Child edit level after being created");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.ApplyEdit();
            Assert.AreEqual(0, root.EditLevel, "Root edit level after ApplyEdit");
            EditableGetSet secondChild = root.ManagedChild;

            Assert.AreEqual(0, secondChild.EditLevel, "Second child edit level after ApplyEdit");
            Assert.IsTrue(ReferenceEquals(initialChild, secondChild), "Child objects should be the same");

            Assert.IsTrue(root.IsDirty, "Root should be dirty after ApplyEdit");

            root = root.Save();

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after Save");
        }
Ejemplo n.º 18
0
        public void RootUndoApply()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.IsFalse(root.IsDirty, "Root should not start dirty");

            Assert.AreEqual("", root.FieldBackedString, "Explicit String should default to string.Empty");
            Assert.AreEqual("", root.ManagedStringField, "Managed String should default to string.Empty");

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after defaults load");

            root.BeginEdit();
            root.FieldBackedString  = "fieldBackedString";
            root.ManagedStringField = "ManagedStringField";
            Assert.AreEqual("fieldBackedString", root.FieldBackedString, "String should be fieldBackedString");
            Assert.AreEqual("ManagedStringField", root.ManagedStringField, "String should be ManagedStringField");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.ApplyEdit();
            Assert.AreEqual("fieldBackedString", root.FieldBackedString, "String should be fieldBackedString after apply");
            Assert.AreEqual("ManagedStringField", root.ManagedStringField, "String should be ManagedStringField after apply");

            Assert.IsTrue(root.IsDirty, "Root should be dirty after ApplyEdit");
            Assert.IsTrue(root.IsValid, "Root should be valid (no validation rules exist)");

            root = root.Save();

            Assert.IsFalse(root.IsDirty, "Root should not be dirty after Save");
        }
Ejemplo n.º 19
0
        public void LoadNullProperty()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            Assert.AreEqual(Guid.Empty, root.M06, "Guid should be null");
        }
Ejemplo n.º 20
0
        public void FieldDirty()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.IsFalse(root.ManagedStringFieldDirty, "ManagedStringField should not be dirty");
            root.ManagedStringField = "hi there";
            Assert.IsTrue(root.ManagedStringFieldDirty, "ManagedStringField should be dirty");
        }
Ejemplo n.º 21
0
        public void LazyLoadChild_GetAfterSet()
        {
            var root = new EditableGetSet();

            root.LazyChild = new ChildList();
            var child = root.LazyChild;

            Assert.IsNotNull(child);
        }
Ejemplo n.º 22
0
        public void If_ManagedStringField_Property_Changes_ChildChanged_Event_Should_Not_Fire()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            root.ChildChanged      += (o, e) => { throw new InvalidOperationException(); };
            root.ManagedStringField = "test";
        }
Ejemplo n.º 23
0
        public void FieldDirty()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            Assert.IsFalse(root.ManagedStringFieldDirty, "ManagedStringField should not be dirty");
            root.ManagedStringField = "hi there";
            Assert.IsTrue(root.ManagedStringFieldDirty, "ManagedStringField should be dirty");
        }
Ejemplo n.º 24
0
        public void If_FieldBackedString_Property_Changes_On_ManagedChild_Then_ChildChanged_Should_Fire_On_Root_ButNot_On_ManagedChild()
        {
            int changed = 0;
            var root    = new EditableGetSet();

            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChild.ChildChanged     += (o, e) => { throw new InvalidOperationException(); };
            root.ManagedChild.FieldBackedString = "changed";

            Assert.AreEqual(1, changed);
        }
Ejemplo n.º 25
0
        public void MarkClean()
        {
            EditableGetSet root = new EditableGetSet();

            root.ManagedStringField = "hi there";
            root.FieldBackedString  = "hi there";
            Assert.IsTrue(root.IsDirty, "Root should be dirty");

            root.MarkClean();

            Assert.IsFalse(root.IsDirty, "Root should not be dirty");
        }
Ejemplo n.º 26
0
        public void LazyLoadChild_GetAfterSet()
        {
            IDataPortal <EditableGetSet> dataPortal      = _testDIContext.CreateDataPortal <EditableGetSet>();
            IDataPortal <ChildList>      childDataPortal = _testDIContext.CreateDataPortal <ChildList>();

            var root = EditableGetSet.GetObject(dataPortal);

            root.LazyChild = ChildList.NewObject(childDataPortal);
            var child = root.LazyChild;

            Assert.IsNotNull(child);
        }
Ejemplo n.º 27
0
        public void If_FieldBackedString_Property_Changes_On_ManagedChild_Then_ChildChanged_Should_Fire_On_Root_ButNot_On_ManagedChild()
        {
            IDataPortal <EditableGetSet> dataPortal = _testDIContext.CreateDataPortal <EditableGetSet>();
            int changed = 0;

            EditableGetSet root = EditableGetSet.GetObject(dataPortal);

            root.ChildChanged += (o, e) => { changed++; };
            root.ManagedChild.ChildChanged     += (o, e) => { throw new InvalidOperationException(); };
            root.ManagedChild.FieldBackedString = "changed";

            Assert.AreEqual(1, changed);
        }
Ejemplo n.º 28
0
        public void NullString()
        {
            EditableGetSet root = new EditableGetSet();

            root.FieldBackedString = null;
            Assert.AreEqual(string.Empty, root.FieldBackedString, "FieldBackedString should be empty");
            root.F06 = null;
            Assert.AreEqual(string.Empty, root.F06, "F06 should be empty");
            root.ManagedStringField = null;
            Assert.AreEqual(string.Empty, root.ManagedStringField, "ManagedStringField should be empty");
            root.M07 = null;
            Assert.AreEqual(string.Empty, root.M07, "M07 should be empty");
        }
Ejemplo n.º 29
0
        public void PropertyNotRegistered()
        {
            var first = new EditableGetSet();

            try
            {
                var root = new BadGetSet();
                var tmp  = root.Id;
            }
            catch (TypeInitializationException ex)
            {
                throw ex.InnerException;
            }
        }
Ejemplo n.º 30
0
        public void SmartDateProperties()
        {
            EditableGetSet root = new EditableGetSet();

            Assert.AreEqual("", root.F04, "Field should default to string.Empty");
            Assert.AreEqual("", root.M04, "Should default to string.Empty");

            root.F04 = new DateTime(1998, 12, 21).ToShortDateString();
            Assert.AreEqual(new DateTime(1998, 12, 21).ToShortDateString(), root.F04, "Field SmartDate should have been set");

            root.M04 = new DateTime(1998, 12, 21).ToShortDateString();
            Assert.AreEqual(new DateTime(1998, 12, 21).ToShortDateString(), root.M04, "SmartDate should have been set");

            Assert.IsTrue(root.IsDirty, "Root should be dirty");
        }