示例#1
0
        public void CopyFrom_Dictionaries_Clones()
        {
            var classOfDictionaries = new ClassOfDictionaries()
            {
                ValueValue = new Dictionary <int, int>()
                {
                    { 10, 1 }, { 11, 2 }
                },
                ValueReference = new Dictionary <int, ClassOfReferences>()
                {
                    { 1, new ClassOfReferences()
                      {
                          FirstObjectProp = new ClassOfValues()
                          {
                              BoolProp = true
                          }
                      } }
                }
            };
            var clone = new ClassOfDictionaries().CopyFrom(classOfDictionaries);

            Assert.Equal(1, clone.ValueValue[10]);
            Assert.Equal(2, clone.ValueValue[11]);

            Assert.True(clone.ValueReference[1].FirstObjectProp.BoolProp);
        }
示例#2
0
        public void CopyFrom_Dictionaries_CanNotModifyOriginalValue()
        {
            var classOfDictionaries = new ClassOfDictionaries()
            {
                ValueReference = new Dictionary <int, ClassOfReferences>()
                {
                    { 1, new ClassOfReferences()
                      {
                          FirstObjectField = new ClassOfValues()
                          {
                              IntProp = 123
                          }
                      } }
                }
            };

            var clone = new ClassOfDictionaries().CopyFrom(classOfDictionaries);

            classOfDictionaries.ValueReference[1].FirstObjectField.IntProp = 123456;

            Assert.Equal(123, clone.ValueReference[1].FirstObjectField.IntProp);
        }