public void GetValueOfSourceProperty_LoadsRequiredPropertyBeforeSourceProperty()
        {
            var vm = new TestVM(TestVM.ClassDescriptor);

            vm.Load(x => x.SourceProperty);
            Assert.IsTrue(vm.IsLoaded(x => x.CollectionRequiredBySourceProperty));
        }
        public void RequiresLoadedPropertyFalse_DisablesLoadOrderDependency()
        {
            TestVMDescriptor descriptorWithoutDependency = VMDescriptorBuilder
                                                           .Inherits(TestVM.ClassDescriptor)
                                                           .OfType <TestVMDescriptor>()
                                                           .For <TestVM>()
                                                           .WithProperties((d, b) => { })
                                                           .WithBehaviors(b => {
                b.Property(x => x.SourceProperty).RequiresLoadedProperty(x => x.CollectionRequiredBySourceProperty, false);
            })
                                                           .Build();

            var vm = new TestVM(descriptorWithoutDependency);

            vm.Load(x => x.SourceProperty);
            Assert.IsFalse(vm.IsLoaded(x => x.CollectionRequiredBySourceProperty));
        }