public void DefaultViewModelSerializer_EnumInCollection()
        {
            var oldViewModel = new EnumCollectionTestViewModel()
            {
                Property1 = TestEnum.Third,
                Children  = new List <EnumTestViewModel>()
                {
                    new EnumTestViewModel()
                    {
                        Property1 = TestEnum.First
                    },
                    new EnumTestViewModel()
                    {
                        Property1 = TestEnum.Second
                    },
                    new EnumTestViewModel()
                    {
                        Property1 = TestEnum.Third
                    }
                }
            };

            context.ViewModel = oldViewModel;
            serializer.BuildViewModel(context);
            var result = context.GetSerializedViewModel();

            result = UnwrapSerializedViewModel(result);
            result = WrapSerializedViewModel(result);

            var newViewModel = new EnumCollectionTestViewModel()
            {
                Children = new List <EnumTestViewModel>()
            };

            context.ViewModel = newViewModel;
            serializer.PopulateViewModel(context, result);

            Assert.IsFalse(result.Contains(typeof(TestEnum).FullName));
            Assert.AreEqual(oldViewModel.Property1, newViewModel.Property1);
            Assert.AreEqual(oldViewModel.Children[0].Property1, newViewModel.Children[0].Property1);
            Assert.AreEqual(oldViewModel.Children[1].Property1, newViewModel.Children[1].Property1);
            Assert.AreEqual(oldViewModel.Children[2].Property1, newViewModel.Children[2].Property1);
        }
        public void DefaultViewModelSerializer_EnumInCollection()
        {
            var oldViewModel = new EnumCollectionTestViewModel()
            {
                Property1 = TestEnum.Third,
                Children = new List<EnumTestViewModel>()
                {
                    new EnumTestViewModel() { Property1 = TestEnum.First },
                    new EnumTestViewModel() { Property1 = TestEnum.Second },
                    new EnumTestViewModel() { Property1 = TestEnum.Third }
                }
            };

            context.ViewModel = oldViewModel;
            serializer.BuildViewModel(context);
            var result = context.GetSerializedViewModel();
            result = UnwrapSerializedViewModel(result);
            result = WrapSerializedViewModel(result);

            var newViewModel = new EnumCollectionTestViewModel() { Children = new List<EnumTestViewModel>() };
            context.ViewModel = newViewModel;
            serializer.PopulateViewModel(context, result);

            Assert.IsFalse(result.Contains(typeof(TestEnum).FullName));
            Assert.AreEqual(oldViewModel.Property1, newViewModel.Property1);
            Assert.AreEqual(oldViewModel.Children[0].Property1, newViewModel.Children[0].Property1);
            Assert.AreEqual(oldViewModel.Children[1].Property1, newViewModel.Children[1].Property1);
            Assert.AreEqual(oldViewModel.Children[2].Property1, newViewModel.Children[2].Property1);
        }