コード例 #1
0
 public void CancelsChangesCorrectlyForSimpleTypes()
 {
     CancelEdit(() => ModelBaseTestHelper.CreateIniEntryObject(),
                x => x.Value = "MyOldValue",
                x => x.Value = "MyNewValue",
                x => Assert.AreEqual("MyOldValue", x.Value));
 }
コード例 #2
0
ファイル: ModelBaseTest.cs プロジェクト: xaecors/Catel
        public void InvokePropertyChangedForAllRegisteredProperties()
        {
            List <string> expectedProperties = new List <string>();
            List <string> actualProperties   = new List <string>();

            expectedProperties.Add(IniEntry.GroupProperty.Name);
            expectedProperties.Add(IniEntry.KeyProperty.Name);
            expectedProperties.Add(IniEntry.ValueProperty.Name);
            expectedProperties.Add(IniEntry.IniEntryTypeProperty.Name);

            var obj = ModelBaseTestHelper.CreateIniEntryObject();

            obj.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                actualProperties.Add(e.PropertyName);
            };

            obj.RaisePropertyChangedForAllRegisteredProperties();

            Assert.AreEqual(expectedProperties.Count, actualProperties.Count);
            foreach (string property in expectedProperties)
            {
                if (!actualProperties.Contains(property))
                {
                    Assert.Fail("No PropertyChanged event for " + property);
                }
            }
        }
コード例 #3
0
ファイル: ModelBaseTest.cs プロジェクト: xaecors/Catel
        public void NotifyPropertyChanged_ManualByStringLiteral()
        {
            var obj = ModelBaseTestHelper.CreateIniEntryObject();

            bool isInvoked = false;

            obj.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (!isInvoked)
                {
                    if (string.Compare(e.PropertyName, "Value") != 0)
                    {
                        Assert.Fail("Wrong PropertyChanged property name");
                    }
                }

                isInvoked = true;
            };

            obj.RaisePropertyChanged("Value");

            if (!isInvoked)
            {
                Assert.Fail("PropertyChanged was not invoked");
            }
        }
コード例 #4
0
        public void EqualsLevel1()
        {
            // Create 2 objects
            var obj1 = ModelBaseTestHelper.CreateIniEntryObject();
            var obj2 = ModelBaseTestHelper.CreateIniEntryObject();

            // Equals
            Assert.AreEqual(obj1, obj2);
        }
コード例 #5
0
        public void Equals_Generic_Null()
        {
            // Create 2 objects
            IniEntry obj1 = ModelBaseTestHelper.CreateIniEntryObject();
            IniEntry obj2 = null;

            // Equals
            Assert.IsFalse(obj1.Equals(obj2));
        }
コード例 #6
0
        public void Equals_Generic()
        {
            // Create 2 objects
            var obj1 = ModelBaseTestHelper.CreateIniEntryObject();
            var obj2 = ModelBaseTestHelper.CreateIniEntryObject();

            // Equals
            Assert.IsTrue(obj1.Equals(obj2));
            Assert.IsTrue(obj2.Equals(obj1));
        }
コード例 #7
0
            public void AppliesChangesCorrectlyForSimpleTypes()
            {
                var iniEntry = ModelBaseTestHelper.CreateIniEntryObject();
                var iniEntryAsIEditableObject = (IEditableObject)iniEntry;

                iniEntry.Value = "MyOldValue";

                iniEntryAsIEditableObject.BeginEdit();

                iniEntry.Value = "MyNewValue";

                iniEntryAsIEditableObject.EndEdit();

                Assert.AreEqual("MyNewValue", iniEntry.Value);
            }
コード例 #8
0
        public static object CreateObjectGraphWithDepth(int depth)
        {
            object originalObject = null;

            if (depth == 1)
            {
                originalObject = ModelBaseTestHelper.CreateIniEntryObject();
            }
            else if (depth == 2)
            {
                originalObject = ModelBaseTestHelper.CreateIniFileObject();
            }
            else if (depth == 3)
            {
                originalObject = ModelBaseTestHelper.CreateComputerSettingsObject();
            }

            return(originalObject);
        }
コード例 #9
0
ファイル: ModelBaseTest.cs プロジェクト: xaecors/Catel
        public void ReadOnlyTest()
        {
            // Declare variables
            const string testValue = "new value that shouldn't exist";
            string       originalValue, actualValue;

            IniEntry iniEntry = ModelBaseTestHelper.CreateIniEntryObject();

            // Test whether the object can be set to read-only
            originalValue = iniEntry.Value;
            iniEntry.SetReadOnly(true);
            iniEntry.Value = testValue;
            actualValue    = iniEntry.Value;
            Assert.AreEqual(originalValue, actualValue);

            // Test whether the object can be set to edit mode again
            iniEntry.SetReadOnly(false);
            iniEntry.Value = testValue;
            actualValue    = iniEntry.Value;
            Assert.AreEqual(testValue, actualValue);
        }
コード例 #10
0
ファイル: ComputerSettings.cs プロジェクト: xaecors/Catel
        /// <summary>
        ///   Initializes the default ini file collection.
        /// </summary>
        /// <returns>New <see cref = "ObservableCollection{T}" />.</returns>
        private static ObservableCollection <IniFile> InitializeDefaultIniFileCollection()
        {
            var result = new ObservableCollection <IniFile>();

            // Add 3 files
            result.Add(ModelBaseTestHelper.CreateIniFileObject("Initial file 1", new[] { ModelBaseTestHelper.CreateIniEntryObject("G1", "K1", "V1") }));
            result.Add(ModelBaseTestHelper.CreateIniFileObject("Initial file 2", new[] { ModelBaseTestHelper.CreateIniEntryObject("G2", "K2", "V2") }));
            result.Add(ModelBaseTestHelper.CreateIniFileObject("Initial file 3", new[] { ModelBaseTestHelper.CreateIniEntryObject("G3", "K3", "V3") }));

            return(result);
        }