mirror of https://github.com/abpframework/abp.git
2 changed files with 127 additions and 0 deletions
@ -0,0 +1,123 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.Extensions.Options; |
||||
|
using Shouldly; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.CmsKit.Polls; |
||||
|
|
||||
|
public class PollViewComponentManager_Test : CmsKitDomainTestBase |
||||
|
{ |
||||
|
private readonly PollViewComponentManager pollManager; |
||||
|
private readonly CmsKitTestData testData; |
||||
|
private readonly IOptions<CmsKitContentWidgetOptions> _options; |
||||
|
|
||||
|
public PollViewComponentManager_Test() |
||||
|
{ |
||||
|
pollManager = GetRequiredService<PollViewComponentManager>(); |
||||
|
testData = GetRequiredService<CmsKitTestData>(); |
||||
|
_options = GetRequiredService<IOptions<CmsKitContentWidgetOptions>>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task ParseAsync_ShouldWorkWithoutConfigOptions() |
||||
|
{ |
||||
|
var content = @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Type= ""Poll"" PollName =""poll-name""] |
||||
|
Thanks _for_ *your * feedback.";
|
||||
|
|
||||
|
var page = await pollManager.ParseAsync(content); |
||||
|
|
||||
|
page.ShouldNotBeNull(); |
||||
|
page.Count.ShouldBe(1);//Ignored Widget
|
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task ParseAsync_ShouldWorkWithWrongConfigOptions() |
||||
|
{ |
||||
|
_options.Value.AddWidgetConfig(testData.WidgetName, new ContentWidgetConfig(testData.PollName)); |
||||
|
|
||||
|
var content = @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Type= ""Poll"" PollName =""poll-name""] |
||||
|
Thanks _for_ *your * feedback.";
|
||||
|
|
||||
|
var page = await pollManager.ParseAsync(content); |
||||
|
|
||||
|
page.ShouldNotBeNull(); |
||||
|
page.Count.ShouldBe(2); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task ParseAsync_ShouldWorkWithWrongWidgetType() |
||||
|
{ |
||||
|
_options.Value.AddWidgetConfig(testData.PollName, new ContentWidgetConfig(testData.WidgetName)); |
||||
|
|
||||
|
var content = @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Wrong Type= ""Poll"" PollName =""poll-name""] |
||||
|
Thanks _for_ *your * feedback.";
|
||||
|
|
||||
|
var page = await pollManager.ParseAsync(content); |
||||
|
|
||||
|
page.ShouldNotBeNull(); |
||||
|
page.Count.ShouldBe(2); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task ParseAsync_ShouldWorkWithWrongPollName() |
||||
|
{ |
||||
|
_options.Value.AddWidgetConfig(testData.PollName, new ContentWidgetConfig(testData.WidgetName)); |
||||
|
|
||||
|
var content = @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Type= ""Poll"" PollWrongName =""poll-name""] |
||||
|
Thanks _for_ *your * feedback.";
|
||||
|
|
||||
|
var page = await pollManager.ParseAsync(content); |
||||
|
|
||||
|
page.ShouldNotBeNull(); |
||||
|
page.Count.ShouldBe(2); |
||||
|
} |
||||
|
|
||||
|
[Theory] |
||||
|
[MemberData(nameof(ExampleData))] |
||||
|
public async Task ParseAsync_ShouldWorkProperlyWithCorrectInputs(string content, int expectedLine) |
||||
|
{ |
||||
|
_options.Value.AddWidgetConfig(testData.PollName, new ContentWidgetConfig(testData.WidgetName)); |
||||
|
|
||||
|
var page = await pollManager.ParseAsync(content); |
||||
|
|
||||
|
page.ShouldNotBeNull(); |
||||
|
page.Count.ShouldBe(expectedLine); |
||||
|
} |
||||
|
|
||||
|
public static IEnumerable<object[]> ExampleData => |
||||
|
new List<object[]> |
||||
|
{ |
||||
|
new object[] { @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Type=""Poll"" PollName=""poll-name""] |
||||
|
Thanks _for_ *your * feedback.", 3},
|
||||
|
|
||||
|
new object[] { @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
[Widget Type=""Poll"" PollName=""poll-name""] |
||||
|
Thanks _for_ *your * feedback. |
||||
|
[Widget Type=""Poll"" PollName=""poll-name1""]", 4 },
|
||||
|
|
||||
|
new object[] { @"**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
Thanks _for_ *your * feedback. |
||||
|
[Widget Type=""Poll"" PollName=""poll-name""]", 2 },
|
||||
|
|
||||
|
new object[] { @"[Widget Type=""Poll"" PollName=""poll-name""] gg [Widget Type=""Poll"" PollName=""poll-name1""]**ABP Framework** is completely open source and developed in a community-driven manner.
|
||||
|
Thanks _for_ *your * feedback. |
||||
|
Thanks _for_ *your * feedback.", 4},
|
||||
|
|
||||
|
new object[] { @"Thanks _for_ *your * feedback.
|
||||
|
Thanks _for_ *your * feedback.", 1}
|
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
Loading…
Reference in new issue