コード例 #1
0
        // Following needs to be equal:
        // FeatureId, LocationId
        public void ActiveFeaturesWithSameFeatureIdAndLocationIdAreEqual()
        {
            // Arrange
            var referenceFeatureDefinition = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            ActivatedFeature referenceFeature = ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                referenceFeatureDefinition,
                Faulty, Properties, TimeActivated,
                Version, DefinitioninstallationScope
                );



            // Act

            var definitionDifferent = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                null,
                null, HiddenDifferent,
                Name, null,
                Scope,
                null,
                Guid.Empty, null,
                null, DefinitioninstallationScope
                );

            var equalFeature = ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                definitionDifferent,
                FaultyDifferent, PropertiesDifferent, TimeActivatedDifferent,
                VersionDifferent, DefinitioninstallationScopeDifferent
                );

            var equalFeatureEmpty = ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                null,
                FaultyDifferent, null, DateTime.MinValue,
                null, null
                );

            // Assert

            Assert.Equal(referenceFeature, equalFeature);

            Assert.Equal(referenceFeature, equalFeatureEmpty);
        }
コード例 #2
0
        // Following needs to be equal:
        // FeatureId, Compatibility level, Name, Scope, DefinitioninstallationScope
        public void DefinitionsWithSameFeatureIdCompLevelNameAndScopeAreEqual()
        {
            // Arrange
            var referenceFeature = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            ActivatedFeature ActiveFeature1 = ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                referenceFeature,
                Faulty, null, DateTime.Now,
                Version
                );

            referenceFeature.ToggleActivatedFeature(ActiveFeature1, true);

            // Act
            var equalFeature = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                DescriptionDifferent,
                DisplayNameDifferent, HiddenDifferent,
                Name, PropertiesDifferent,
                Scope,
                TitleDifferent,
                SolutionIdDifferent, UiVersionDifferent,
                VersionDifferent, DefinitioninstallationScope
                );

            // Assert

            Assert.Equal(referenceFeature, equalFeature);

            // Act
            var equalFeatureEmpty = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                null,
                null, HiddenDifferent,
                Name, null,
                Scope,
                null,
                Guid.Empty, null,
                null, DefinitioninstallationScope
                );

            // Assert

            Assert.Equal(referenceFeature, equalFeatureEmpty);
        }
コード例 #3
0
 public static ActivatedFeature HealthySiCo15ActivatedInActivatedSiCo()
 {
     return(ActivatedFeatureFactory.GetActivatedFeature(
                FeatureDefinitionHealthySiCo15.UniqueIdentifier,
                Locations.ActivatedRootWeb.Guid.ToString(),
                FeatureDefinitionHealthySiCo15.DisplayName,
                Faulty, null, DateTime.Now,
                Version, FeatureDefinitionHealthySiCo15.Version
                ));
 }
コード例 #4
0
 public static ActivatedFeature GetUpgradeFarmFeature(string locationId)
 {
     return(ActivatedFeatureFactory.GetActivatedFeature(
                FeatureDefinitionUpgradeFarm15.UniqueIdentifier,
                locationId,
                FeatureDefinitionUpgradeFarm15.DisplayName,
                Faulty, null, DateTime.Now,
                ActivatedFeatureVersion, FeatureDefinitionUpgradeFarm15.Version
                ));
 }
コード例 #5
0
 public static ActivatedFeature GetFaultySiteFeature(string locationId)
 {
     return(ActivatedFeatureFactory.GetActivatedFeature(
                FeatureDefinitionFaultySite15.UniqueIdentifier,
                locationId, // Locations.ActivatedRootWeb.Guid,
                FeatureDefinitionFaultySite15.DisplayName,
                Faulty, null, DateTime.Now,
                Version, FeatureDefinitionFaultySite15.Version
                ));
 }
コード例 #6
0
ファイル: Features.cs プロジェクト: lulzzz/featureadmin
 public static ActivatedFeature HealthySiCo15ActivatedInActivatedSiCo()
 {
     return(ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                FeatureDefinitionHealthySiCo15,
                Faulty, null, DateTime.Now,
                Version
                ));
 }
コード例 #7
0
        // Following needs to be equal:
        // FeatureId, LocationId
        public void ActiveFeaturesWithDifferentFeatureIdOrLocationIdAreNotEqual()
        {
            // Arrange
            var referenceFeatureDefinition = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version
                );

            ActivatedFeature referenceFeature = ActivatedFeatureFactory.GetActivatedFeature(
                referenceFeatureDefinition.UniqueIdentifier,
                SolutionId.ToString(),
                referenceFeatureDefinition.DisplayName,
                Faulty, Properties, TimeActivated,
                Version, referenceFeatureDefinition.Version
                );


            // Act
            var notEqualFeatureId = ActivatedFeatureFactory.GetActivatedFeature(
                IdDifferent.ToString(),
                SolutionId.ToString(),
                referenceFeatureDefinition.DisplayName,
                Faulty, Properties, TimeActivated,
                Version, referenceFeatureDefinition.Version
                );

            var notEqualLocationId = ActivatedFeatureFactory.GetActivatedFeature(
                referenceFeatureDefinition.UniqueIdentifier,
                SolutionIdDifferent.ToString(),
                referenceFeatureDefinition.DisplayName,
                Faulty, Properties, TimeActivated,
                Version, referenceFeatureDefinition.Version
                );

            // Assert

            Assert.NotEqual(referenceFeature, notEqualFeatureId);
            Assert.NotEqual(referenceFeature, notEqualLocationId);
        }
コード例 #8
0
        public static ActivatedFeature ToActivatedFeature(this SPFeature spFeature, Guid parentId, Scope parentScope, string parentUrl)
        {
            FeatureDefinition definition = null;
            bool faulty = false;

            string definitionInstallationScope = GetDefinitionInstallationScope(spFeature.FeatureDefinitionScope == SPFeatureDefinitionScope.Farm, parentUrl);

            try
            {
                if (spFeature.Definition != null)
                {
                    var fDef = spFeature.Definition;
                    definition = fDef.ToFeatureDefinition(definitionInstallationScope);
                }
                else
                {
                    definition = FeatureDefinitionFactory.GetFaultyDefinition(spFeature.DefinitionId, parentScope, spFeature.Version, definitionInstallationScope);
                    faulty     = true;
                }
            }
            catch (Exception)
            {
                faulty = true;
            }


            var feature = ActivatedFeatureFactory.GetActivatedFeature(
                spFeature.DefinitionId,
                parentId,
                definition,
                faulty,
                spFeature.Properties == null ? null :
                spFeature.Properties.ToProperties(),
                spFeature.TimeActivated,
                spFeature.Version,
                definitionInstallationScope
                );

            return(feature);
        }
コード例 #9
0
        public static ActivatedFeature ToActivatedFeature(
            this SPFeature spFeature,
            Location location)
        {
            FeatureDefinition definition = null;
            bool faulty = false;

            string  featureUniqueId;
            string  displayName;
            Version definitionVersion;

            try
            {
                var fDef = spFeature.Definition;

                if (fDef != null)
                {
                    if (spFeature.FeatureDefinitionScope == SPFeatureDefinitionScope.Web)
                    {
                        definition = fDef.ToFeatureDefinition(location.UniqueId);
                    }
                    else if (spFeature.FeatureDefinitionScope == SPFeatureDefinitionScope.Site)
                    {
                        if (location.Scope == Scope.Web)
                        {
                            definition = fDef.ToFeatureDefinition(location.ParentId);
                        }
                        else
                        {
                            // only other location with featuredefinitionscope site can be site collection
                            // therefore, location id for sandboxed solution is current location (site)
                            definition = fDef.ToFeatureDefinition(location.UniqueId);
                        }
                    }
                    else
                    {
                        // Featuredefinitionscope must be farm or none now, in both cases, no location will be assigned to feature definition ...
                        definition = fDef.ToFeatureDefinition(null);
                    }

                    featureUniqueId   = definition.UniqueIdentifier;
                    displayName       = definition.DisplayName;
                    definitionVersion = definition.Version;
                }
                else
                {
                    faulty = true;

                    featureUniqueId = Core.Common.StringHelper.GenerateUniqueId(
                        spFeature.DefinitionId,
                        Core.Common.Constants.Labels.FaultyFeatureCompatibilityLevel
                        );
                    displayName       = Core.Common.Constants.Labels.FaultyFeatureName;
                    definitionVersion = null;
                }
            }
            catch (Exception)
            {
                faulty = true;

                featureUniqueId = Core.Common.StringHelper.GenerateUniqueId(
                    spFeature.DefinitionId,
                    Core.Common.Constants.Labels.FaultyFeatureCompatibilityLevel
                    );
                displayName       = Core.Common.Constants.Labels.FaultyFeatureName;
                definitionVersion = null;
            }

            var feature = ActivatedFeatureFactory.GetActivatedFeature(
                featureUniqueId,
                location.UniqueId,
                displayName,
                faulty,
                spFeature.Properties == null ? null :
                spFeature.Properties.ToProperties(),
                spFeature.TimeActivated,
                spFeature.Version,
                definitionVersion,
                spFeature.FeatureDefinitionScope.ToFeatureDefinitionScope()
                );

            return(feature);
        }
コード例 #10
0
        // Following needs to be equal:
        // FeatureId, Compatibility level, Name, Scope, DefinitioninstallationScope
        public void DefinitionsWithDifferentFeatureIdCompLevelNameOrScopeAreNotEqual()
        {
            // Arrange
            var referenceFeature = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            ActivatedFeature ActiveFeature1 = ActivatedFeatureFactory.GetActivatedFeature(
                Id,
                Locations.ActivatedRootWeb.Guid,
                referenceFeature,
                Faulty, null, DateTime.Now,
                Version
                );

            referenceFeature.ToggleActivatedFeature(ActiveFeature1, true);

            // Act
            var notEqualFeatureId = FeatureDefinitionFactory.GetFeatureDefinition(
                IdDifferent, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            var notEqualFeatureCompatibility = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevelDifferent,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            var notEqualFeatureScope = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                ScopeDifferent,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            var notEqualFeatureName = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                NameDifferent, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScope
                );

            var notEqualFeatureDefInstScope = FeatureDefinitionFactory.GetFeatureDefinition(
                Id, CompatibilityLevel,
                Description,
                DisplayName, Hidden,
                Name, Properties,
                Scope,
                Title,
                SolutionId, UiVersion,
                Version, DefinitioninstallationScopeDifferent
                );

            // Assert

            Assert.NotEqual(referenceFeature, notEqualFeatureId);
            Assert.NotEqual(referenceFeature, notEqualFeatureCompatibility);
            Assert.NotEqual(referenceFeature, notEqualFeatureName);
            Assert.NotEqual(referenceFeature, notEqualFeatureScope);
            Assert.NotEqual(referenceFeature, notEqualFeatureDefInstScope);
        }