public void ThenCustomizationPolicyIsNotAvailable()
            {
                var descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, element => element.Policy);

                Assert.NotNull(descriptor);
                Assert.False(descriptor.IsBrowsable);
            }
            public void ThenTypePropertyIsReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.Property, property => property.Type);

                Assert.True(descriptor.IsBrowsable);
                Assert.True(descriptor.IsReadOnly);
            }
            public void ThenIsCustomizableIsBrowsableAndNotReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, pattern => pattern.IsCustomizable);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
Exemplo n.º 4
0
            public void ThenAssociatedGuidanceIsBrowsable()
            {
                var descriptor = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.AssociatedGuidance);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
            public void TheValidationRulesPropertyIsBrowsableAndNotReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.Property, property => property.RawValidationRules);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
            public void ThenIsCustomizableIsReadOnlyAndFalse()
            {
                var descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, pattern => pattern.IsCustomizable);

                Assert.True(descriptor.IsReadOnly);
                Assert.True(this.PatternModel.Pattern.IsCustomizable == CustomizationState.False);
            }
            public void ThenValidationExecutionIsBrowsable()
            {
                var descriptor = TypedDescriptor.GetProperty(this.validationExtension, extension => extension.ValidationExecution);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
        /// <summary>
        /// Returns the property descriptors for this instance.
        /// </summary>
        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
        {
            Guard.NotNull(() => context, context);

            var descriptors = base.GetProperties(context, value, attributes).Cast <PropertyDescriptor>();

            // Remove descriptors for the data type of this property (string)
            descriptors = descriptors.Where(descriptor => descriptor.ComponentType != typeof(string));

            // Get the model element being described
            var          selection = context.Instance;
            ModelElement mel       = selection as ModelElement;
            var          pel       = selection as PresentationElement;

            if (pel != null)
            {
                mel = pel.Subject;
            }

            var element = ExtensionElement.GetExtension <ArtifactExtension>(mel);

            if (element != null)
            {
                // Copy descriptors from owner (make Browsable)
                var descriptor1 = new DelegatingPropertyDescriptor(element, TypedDescriptor.CreateProperty(element, extension => extension.OnArtifactActivation),
                                                                   new BrowsableAttribute(true), new DefaultValueAttribute(element.GetPropertyDefaultValue <ArtifactExtension, ArtifactActivatedAction>(e => e.OnArtifactActivation)));
                var descriptor2 = new DelegatingPropertyDescriptor(element, TypedDescriptor.CreateProperty(element, extension => extension.OnArtifactDeletion),
                                                                   new BrowsableAttribute(true), new DefaultValueAttribute(element.GetPropertyDefaultValue <ArtifactExtension, ArtifactDeletedAction>(e => e.OnArtifactDeletion)));
                descriptors = descriptors.Concat(new[] { descriptor1, descriptor2 });
            }

            return(new PropertyDescriptorCollection(descriptors.ToArray()));
        }
Exemplo n.º 9
0
            public void ThenNamePropertyIsReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, pattern => pattern.Name);

                Assert.True(descriptor.IsBrowsable);
                Assert.True(descriptor.IsReadOnly);
            }
            public void ThenAssociatedArtifactIsBrowsable()
            {
                var descriptor = TypedDescriptor.GetProperty(this.artifactExtension, extension => extension.AssociatedArtifacts);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
Exemplo n.º 11
0
            public void TheValidationRulesPropertyIsBrowsableAndNotReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.Element, element => element.ValidationRules);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
Exemplo n.º 12
0
            public void ThenCustomizationPolicyIsBrowsableAndNotReadOnly()
            {
                var descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, element => element.Policy);

                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
Exemplo n.º 13
0
            public void ThenSettingIsReadOnlyForTailor()
            {
                var policyDescriptor  = TypedDescriptor.GetProperty(this.Property, pattern => pattern.Policy);
                var policySettings    = policyDescriptor.GetChildProperties(this.Property.Policy);
                var settingDescriptor = policySettings.Cast <PropertyDescriptor>().First(descriptor => descriptor.DisplayName.Contains("Default"));

                Assert.True(settingDescriptor.IsReadOnly);
            }
Exemplo n.º 14
0
            public void ThenCustomizationPolicyDisplaysCorrectly()
            {
                var    descriptor = TypedDescriptor.GetProperty(this.PatternModel.Pattern, element => element.Policy);
                string category   = this.PatternModel.Pattern.Policy.GetDomainClass().ImplementationClass.Category();

                Assert.Equal(category, descriptor.Category);
                Assert.Equal(descriptor.Converter.ConvertToString(this.PatternModel.Pattern.Policy),
                             string.Format(CultureInfo.CurrentCulture, CustomizableElementTypeDescriptor.PolicyDisplayedValueFormatter,
                                           this.PatternModel.Pattern.Policy.CustomizationLevel));
            }
            public void ThenAssociatedArtifactDescriptorHasCorrectProperties()
            {
                Mock <ITypeDescriptorContext> mockContext = new Mock <ITypeDescriptorContext>();

                mockContext.SetupGet(context => context.Instance).Returns(this.product);

                var descriptor  = TypedDescriptor.GetProperty(this.artifactExtension, extension => extension.AssociatedArtifacts);
                var descriptors = descriptor.Converter.GetProperties(mockContext.Object, string.Empty);

                Assert.Equal(2, descriptors.Count);
                Assert.NotNull(descriptors[Reflector <ArtifactExtension> .GetProperty(extension => extension.OnArtifactActivation).Name]);
                Assert.NotNull(descriptors[Reflector <ArtifactExtension> .GetProperty(extension => extension.OnArtifactDeletion).Name]);
            }
Exemplo n.º 16
0
            public void ThenAssociatedGuidanceDescriptorHasCorrectProperties()
            {
                Mock <ITypeDescriptorContext> mockContext = new Mock <ITypeDescriptorContext>();

                mockContext.SetupGet(context => context.Instance).Returns(this.product);

                var descriptor  = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.AssociatedGuidance);
                var descriptors = descriptor.Converter.GetProperties(mockContext.Object, string.Empty);

                Assert.Equal(4, descriptors.Count);
                Assert.NotNull(descriptors[Reflector <GuidanceExtension> .GetProperty(extension => extension.ExtensionId).Name]);
                Assert.NotNull(descriptors[Reflector <GuidanceExtension> .GetProperty(extension => extension.GuidanceActivateOnCreation).Name]);
                Assert.NotNull(descriptors[Reflector <GuidanceExtension> .GetProperty(extension => extension.GuidanceInstanceName).Name]);
                Assert.NotNull(descriptors[Reflector <GuidanceExtension> .GetProperty(extension => extension.GuidanceSharedInstance).Name]);
            }
Exemplo n.º 17
0
            public void WhenAddingNewProperty_ThenNamePropertyIsBrowsableAndNotReadOnly()
            {
                PropertySchema property = null;

                this.PatternModel.Store.TransactionManager.DoWithinTransaction(() =>
                {
                    property = this.PatternModel.Create <PropertySchema>();
                });

                var descriptor = TypedDescriptor.GetProperty(property, prop => prop.Name);

                Assert.False(property.IsInheritedFromBase);
                Assert.True(descriptor.IsBrowsable);
                Assert.False(descriptor.IsReadOnly);
            }
            public void ThenValidationExecutionDescriptorHasCorrectProperties()
            {
                Mock <ITypeDescriptorContext> mockContext = new Mock <ITypeDescriptorContext>();

                mockContext.SetupGet(context => context.Instance).Returns(this.product);

                var descriptor  = TypedDescriptor.GetProperty(this.validationExtension, extension => extension.ValidationExecution);
                var descriptors = descriptor.Converter.GetProperties(mockContext.Object, string.Empty);

                Assert.Equal(4, descriptors.Count);
                Assert.NotNull(descriptors[Reflector <ValidationExtension> .GetProperty(extension => extension.ValidationOnBuild).Name]);
                Assert.NotNull(descriptors[Reflector <ValidationExtension> .GetProperty(extension => extension.ValidationOnCustomEvent).Name]);
                Assert.NotNull(descriptors[Reflector <ValidationExtension> .GetProperty(extension => extension.ValidationOnMenu).Name]);
                Assert.NotNull(descriptors[Reflector <ValidationExtension> .GetProperty(extension => extension.ValidationOnSave).Name]);
            }
Exemplo n.º 19
0
            public void ThenActivateOnCreationIsNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.GuidanceActivateOnCreation);

                Assert.Null(descriptor);
            }
            public void ThenOnArtifactActivationNameDescriptorNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.artifactExtension, extension => extension.OnArtifactActivation);

                Assert.Null(descriptor);
            }
            public void ThenValidationOnSaveDescriptorNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.validationExtension, extension => extension.ValidationOnSave);

                Assert.Null(descriptor);
            }
Exemplo n.º 22
0
            public void ThenGuidanceExtensionIdIsNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.ExtensionId);

                Assert.Null(descriptor);
            }
Exemplo n.º 23
0
            public void ThenDefaultInstanceNameDescriptorNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.GuidanceInstanceName);

                Assert.Null(descriptor);
            }
Exemplo n.º 24
0
            public void ThenSharedInstanceIsNotExist()
            {
                var descriptor = TypedDescriptor.GetProperty(this.guidanceExtension, extension => extension.GuidanceSharedInstance);

                Assert.Null(descriptor);
            }