示例#1
0
        public void Many_to_many_association(IWCTestData testData, IPersistentCollectionMemberInfo collectionMemberInfo,
                                             IPersistentReferenceMemberInfo referenceMemberInfo, Compiler compiler)
        {
            referenceMemberInfo.CreateAssociation("test");
            collectionMemberInfo.CreateAssociation("test");
            var persistentAssemblyInfo = referenceMemberInfo.Owner.PersistentAssemblyInfo;
            var code = persistentAssemblyInfo.GenerateCode();

            var assemblyDefinition = compiler.Compile(code, persistentAssemblyInfo.Name).AssemblyDefinition;


            CheckAssociation(referenceMemberInfo, assemblyDefinition);
            CheckAssociation(collectionMemberInfo, assemblyDefinition);
        }
示例#2
0
        public void Collection_member(IWCTestData testData, IPersistentCollectionMemberInfo memberInfo, Compiler compiler)
        {
            var assemblyInfo = memberInfo.Owner.PersistentAssemblyInfo;
            var code         = assemblyInfo.GenerateCode();

            var compilerResult = compiler.Compile(code, assemblyInfo.Name);

            var propertyDefinitions = compilerResult.AssemblyDefinition.MainModule.Types.SelectMany(definition => definition.Properties);
            var propertyDefinition  = propertyDefinitions.FirstOrDefault(definition => definition.Name == memberInfo.Name);

            propertyDefinition.Should().NotBeNull();
            propertyDefinition?.PropertyType.ToString().Should().Contain(typeof(XPCollection).FullName);
            propertyDefinition?.PropertyType.ToString().Should().Contain(memberInfo.CollectionClassInfo.Name);
        }
示例#3
0
 public void ManyToOne_association(IWCTestData testData, IPersistentCollectionMemberInfo memberInfo, Compiler compiler)
 {
     CreateAndCheckAssociation(memberInfo, compiler);
 }