Exemple #1
0
        public void ExportedRulesMustExist(MemberInfo member, ExportPropertyXamlRuleDefinitionAttribute attribute)
        {
            Assert.NotNull(attribute);

            var assembly = Assembly.Load(attribute.XamlResourceAssemblyName);

            using Stream stream = assembly.GetManifestResourceStream(attribute.XamlResourceStreamName);

            Assert.True(stream != null, $"The rule '{attribute.XamlResourceStreamName}' indicated by '{GetTypeQualifiedName(member)}' does not exist in assembly '{attribute.XamlResourceAssemblyName}'.");
        }
Exemple #2
0
        public void BrowseObjectsMustBeInBrowseObjectContext(MemberInfo member, ExportPropertyXamlRuleDefinitionAttribute attribute)
        {
            if (!member.Name.Contains("BrowseObject"))
            {
                return;
            }

            foreach (string context in attribute.Context.Split(';'))
            {
                if (context == PropertyPageContexts.BrowseObject)
                {
                    return;
                }
            }

            Assert.True(false, $"'{GetTypeQualifiedName(member)}' must live in the PropertyPageContexts.BrowseObject context.");
        }
        public void ExportedRulesMustExist(MemberInfo member, ExportPropertyXamlRuleDefinitionAttribute attribute)
        {
            Assert.NotNull(attribute);

            // HERE BE DRAGONS
            // Note the following are *not* equivalent:
            //   Assembly.Load(assemblyNameString)
            //   Assembly.Load(new AssemblyName(assemblyNameString))
            // The first will accept certain malformed assembly names that the second does not,
            // and will successfully load the assembly where the second throws an exception.
            // CPS uses the second form when loading assemblies to extract embedded XAML, and
            // so we must do the same in this test.
            var assemblyName = new AssemblyName(attribute.XamlResourceAssemblyName);
            var assembly     = Assembly.Load(assemblyName);

            using Stream stream = assembly.GetManifestResourceStream(attribute.XamlResourceStreamName);

            Assert.True(stream != null, $"The rule '{attribute.XamlResourceStreamName}' indicated by '{GetTypeQualifiedName(member)}' does not exist in assembly '{attribute.XamlResourceAssemblyName}'.");
        }