Browse Source

Added PollViewComponentManager_Test

pull/13082/head
malik masis 4 years ago
parent
commit
5aca43a2b5
  1. 123
      modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Polls/PollViewComponentManager_Test.cs
  2. 4
      modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs

123
modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Polls/PollViewComponentManager_Test.cs

@ -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}
};
}

4
modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs

@ -127,4 +127,8 @@ public class CmsKitTestData : ISingletonDependency
public string MenuItem_3_Name { get; } = "Products";
public string MenuItem_3_Url { get; } = "/products";
public string PollName { get; } = "Poll";
public string WidgetName { get; } = "CmsPollByName";
}

Loading…
Cancel
Save