public static FeatureDefinition ToFeatureDefinition(this SPFeatureDefinition spFeatureDefinition, string definitionInstallationScope) { var cultureInfo = new System.Globalization.CultureInfo(1033); if (spFeatureDefinition == null) { return(null); } var fd = FeatureDefinitionFactory.GetFeatureDefinition( spFeatureDefinition.Id, spFeatureDefinition.CompatibilityLevel, spFeatureDefinition.GetDescription(cultureInfo), spFeatureDefinition.DisplayName, spFeatureDefinition.Hidden, spFeatureDefinition.Name, spFeatureDefinition.Properties == null ? null : spFeatureDefinition.Properties.ToProperties(), spFeatureDefinition.Scope.ToScope(), spFeatureDefinition.GetTitle(cultureInfo), spFeatureDefinition.SolutionId, spFeatureDefinition.UIVersion, spFeatureDefinition.Version, definitionInstallationScope); return(fd); }
// 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); }
// 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); }
// 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); }
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); }
public static FeatureDefinition ToFeatureDefinition(this SPFeatureDefinition spFeatureDefinition, string sandboxedSolutionLocationId) { var cultureInfo = new System.Globalization.CultureInfo(1033); if (spFeatureDefinition == null) { return(null); } // If a feature definition is removed or orphaned, scope is set to undefined // therefore, scope is checked first and set in all exceptions later Scope defScope; try { defScope = spFeatureDefinition.Scope.ToScope(); } catch (Exception) { defScope = Scope.ScopeInvalid; } Guid defId; try { defId = spFeatureDefinition.Id; } catch (Exception) { defId = Guid.Empty; defScope = Scope.ScopeInvalid; } int defCompatibilityLevel; try { defCompatibilityLevel = spFeatureDefinition.CompatibilityLevel; } catch (Exception) { defCompatibilityLevel = 0; defScope = Scope.ScopeInvalid; } string defDescription; try { defDescription = spFeatureDefinition.GetDescription(cultureInfo); } catch (Exception ex) { defDescription = ex.Message; defScope = Scope.ScopeInvalid; } string defDisplayName; try { defDisplayName = spFeatureDefinition.DisplayName; } catch (Exception ex) { defDisplayName = ex.Message; defScope = Scope.ScopeInvalid; } bool defHidden; try { defHidden = spFeatureDefinition.Hidden; } catch (Exception) { defHidden = false; defScope = Scope.ScopeInvalid; } string defName; try { defName = spFeatureDefinition.Name; } catch (Exception ex) { defName = ex.Message; defScope = Scope.ScopeInvalid; } Dictionary <string, string> defProperties; try { defProperties = spFeatureDefinition.Properties == null ? null : spFeatureDefinition.Properties.ToProperties(); } catch (Exception) { defProperties = null; defScope = Scope.ScopeInvalid; } string defTitle; try { defTitle = spFeatureDefinition.GetTitle(cultureInfo); } catch (Exception ex) { defTitle = ex.Message; defScope = Scope.ScopeInvalid; } Guid defSolutionId; try { defSolutionId = spFeatureDefinition.SolutionId; } catch (Exception) { defSolutionId = Guid.Empty; defScope = Scope.ScopeInvalid; } string defUIVersion; try { defUIVersion = spFeatureDefinition.UIVersion; } catch (Exception) { defUIVersion = string.Empty; defScope = Scope.ScopeInvalid; } Version defVersion; try { defVersion = spFeatureDefinition.Version; } catch (Exception) { defVersion = new Version("0.0.0.0"); defScope = Scope.ScopeInvalid; } var fd = FeatureDefinitionFactory.GetFeatureDefinition( defId, defCompatibilityLevel, defDescription, defDisplayName, defHidden, defName, defProperties, defScope, defTitle, defSolutionId, defUIVersion, defVersion, sandboxedSolutionLocationId); return(fd); }
// 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); }