Merge pull request #6876 from abpframework/dependent-features

Page Feature and dependent features implementation
pull/6885/head
Ahmet Çotur 5 years ago committed by GitHub
commit f42193231d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -15,6 +15,10 @@ namespace Volo.CmsKit.GlobalFeatures
public TagsFeature Tags => GetFeature<TagsFeature>();
public ContentsFeature Contents => GetFeature<ContentsFeature>();
public PagesFeature Pages => GetFeature<PagesFeature>();
public GlobalCmsKitFeatures([NotNull] GlobalFeatureManager featureManager)
: base(featureManager)
{
@ -23,6 +27,7 @@ namespace Volo.CmsKit.GlobalFeatures
AddFeature(new RatingsFeature(this));
AddFeature(new TagsFeature(this));
AddFeature(new ContentsFeature(this));
AddFeature(new PagesFeature(this));
}
}
}

@ -0,0 +1,29 @@
using JetBrains.Annotations;
using Volo.Abp.GlobalFeatures;
namespace Volo.CmsKit.GlobalFeatures
{
[GlobalFeatureName(Name)]
public class PagesFeature:GlobalFeature
{
public const string Name = "CmsKit.Pages";
internal PagesFeature(
[NotNull] GlobalCmsKitFeatures cmsKit
) : base(cmsKit)
{
}
public override void Enable()
{
var contentsFeature = FeatureManager.Modules.CmsKit().Contents;
if (!contentsFeature.IsEnabled)
{
contentsFeature.Enable();
}
base.Enable();
}
}
}

@ -0,0 +1,30 @@
using Shouldly;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
using Xunit;
namespace Volo.CmsKit.Features
{
public class GlobalCmsKitFeatures_Tests : CmsKitDomainTestBase
{
private readonly GlobalCmsKitFeatures _cmsKitFeatures;
public GlobalCmsKitFeatures_Tests()
{
_cmsKitFeatures = new GlobalCmsKitFeatures(GlobalFeatureManager.Instance);
}
[Fact]
public void Page_Feature_Should_Enable_Dependent_Features()
{
_cmsKitFeatures.DisableAll();
_cmsKitFeatures.Contents.IsEnabled.ShouldBeFalse();
_cmsKitFeatures.Pages.IsEnabled.ShouldBeFalse();
_cmsKitFeatures.Pages.Enable();
_cmsKitFeatures.Contents.IsEnabled.ShouldBeTrue();
_cmsKitFeatures.Pages.IsEnabled.ShouldBeTrue();
}
}
}
Loading…
Cancel
Save