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(); }
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)); }
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); }
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]); }