Example #1
0
        public void OnSubtypeChangedTest()
        {
            bool isCalled = false;

            var factory = new PropertyFactory();
            var prop    = new SubtypingProperty(typeof(MyBase), factory, new Type[] { typeof(MyDerived) });
            var vm      = new SubtypingViewModel(prop, new ViewModelFactory(factory, false));

            vm.OnChanged.Subscribe(x => isCalled = true);

            prop.SelectedType.Value = prop.AvailableTypes.First();
            isCalled.IsTrue();

            prop.Model.Value.IsInstanceOf <ClassProperty>();
            var members = (prop.Model.Value as ClassProperty).Members;

            isCalled = false;
            var memberX = (IntProperty)members.First(x => x.PropertyInfo.Name == nameof(MyClass.X));

            memberX.IntValue.Value = 99;
            isCalled.IsTrue();

            isCalled = false;
            var memberY = (IntProperty)members.First(x => x.PropertyInfo.Name == nameof(MyClass.Y));

            memberY.IntValue.Value = 81;
            isCalled.IsTrue();
        }
Example #2
0
        public void Subtypeをモデルに書きこむことができる()
        {
            var types        = new[] { typeof(Subtype1), typeof(Subtype2) };
            var subtypeModel = new SubtypingProperty(typeof(Subtyping), new PropertyFactory(), types);

            subtypeModel.OnError.Subscribe(x => { throw x; });

            Load(subtypeModel, new Subtype2()
            {
                Z = 12
            });

            subtypeModel.SelectedType.Value.Type.Is(typeof(Subtype2));
            subtypeModel.SelectedType.Value.Name.Is("Z2");
            var subtype = subtypeModel.Model.Value.Value.Value.IsInstanceOf <Subtype2>();

            subtype.Z.Is(12);
        }