Exemple #1
0
        public void SubtypingPropagateTest()
        {
            bool isCalled = false;
            var  factory  = new PropertyFactory();

            factory.GetStructure(Assembly.GetExecutingAssembly(), typeof(SubtypeProject), new Project[0]);

            var prop = factory.Create(typeof(A), "SubtypeA") as SubtypingProperty;
            var vm   = new ViewModelFactory(factory).Create(prop, false) as SubtypingViewModel;

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

            T GetMember <T>(IStructureProperty model, string name) => (T)model.Members.First(x => x.PropertyInfo.Name == name);

            prop.SelectedType.Value = prop.AvailableTypes.First();
            var memberB = GetMember <SubtypingProperty>(prop.Model.Value as ClassProperty, nameof(AX.B));

            memberB.SelectedType.Value = memberB.AvailableTypes.First();
            var memberC = GetMember <ClassProperty>(memberB.Model.Value as ClassProperty, nameof(BX.C));

            var memberX = GetMember <IntProperty>(memberC, nameof(C.Z));

            memberX.IntValue.Value = 999;
            isCalled.IsTrue();
        }
Exemple #2
0
        public void GetStructureTest()
        {
            var factory = new PropertyFactory();
            var root    = factory.GetStructure(typeof(PropertyFactoryTest).Assembly, typeof(LocalProject), new PropertyWriter.Models.Project[0]);

            root.Type.Is(typeof(LocalProject));

            var properties = root.Structure.Properties.ToArray();

            properties.Length.Is(1);
            properties[0].IsInstanceOf <ComplicateCollectionProperty>();

            var collectionProp = (ComplicateCollectionProperty)properties[0];

            collectionProp.Collection.Count.Is(0);
            collectionProp.ElementType.Is(typeof(ReferenceClass));
        }
Exemple #3
0
        public void ReferencableMasterInfoのコレクションの更新が反映される()
        {
            PropertyFactory factory = new PropertyFactory();
            var             root    = factory.GetStructure(Assembly.GetExecutingAssembly(),
                                                           typeof(Hoge),
                                                           new PropertyWriter.Models.Project[0]);

            int countB = factory.AsDynamic().loader.Masters["Fugas"].Collection.Count;

            countB.Is(0);

            var fugas = root.Structure.Properties.First(x => x.PropertyInfo.Name == "Fugas")
                        .IsInstanceOf <ComplicateCollectionProperty>();

            fugas.AddNewElement();

            int countA = factory.AsDynamic().loader.Masters["Fugas"].Collection.Count;

            countA.Is(1);
        }
Exemple #4
0
        public void ReferenceTest()
        {
            var factory        = new PropertyFactory();
            var root           = factory.GetStructure(typeof(PropertyFactoryTest).Assembly, typeof(LocalProject), new PropertyWriter.Models.Project[0]);
            var properties     = root.Structure.Properties.ToArray();
            var collectionProp = (ComplicateCollectionProperty)properties[0];

            var model = collectionProp.AddNewElement();

            model.IsInstanceOf <ClassProperty>();

            var prop = (ClassProperty)model;

            prop.ValueType.Is(typeof(ReferenceClass));
            prop.Members.Length.Is(2);
            prop.Members[0].IsInstanceOf <IntProperty>();
            prop.Members[1].IsInstanceOf <ReferenceByIntProperty>();

            var refInt = (ReferenceByIntProperty)prop.Members[1];

            refInt.Source.Type.Is(typeof(ReferenceClass));
        }
 public void OnGetStructure()
 {
     var factory = new PropertyFactory();
     var root    = factory.GetStructure(Assembly.GetExecutingAssembly(), typeof(InternalProject), new Project[0]);
 }