56 lines
2.4 KiB
C#
56 lines
2.4 KiB
C#
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using FluentAssertions;
|
|
using NUnit.Framework;
|
|
using Strata.Analytics.Models.Workbooks;
|
|
using Strata.Analytics.Biz.Workbooks.Services;
|
|
using Strata.Analytics.Test.Unit.Biz.TestData;
|
|
using Strata.CoreLib.Claims.Extensions;
|
|
using Strata.Testing.Categories;
|
|
|
|
namespace Strata.Analytics.Test.Unit.Biz.Workbooks
|
|
{
|
|
[NUnit.Framework.Category(TestCategory.Unit)]
|
|
[Parallelizable(ParallelScope.Self)]
|
|
public class WorkbookSourceCreateTest
|
|
{
|
|
|
|
[Test]
|
|
public async Task Workbook_CurrentUserAssignedAsEditor_GivenUserIsNotStrata()
|
|
{
|
|
// arrange
|
|
var claimsPrincipal = IClaimsPrincipalAccessorMock.GetClaimsPrincipalAccessor();
|
|
var dbContext = AnalyticsDbContextMock.GetAnalyticsDbContext(claimsPrincipal);
|
|
var workbookService = new WorkbookService(dbContext, claimsPrincipal, AutoMapperMock.GetAutoMapper());
|
|
|
|
// act
|
|
var workbook = await workbookService.CreateAsync(new WorkbookCreateInfo() { Name = "Workbook1" }, CancellationToken.None);
|
|
|
|
// assert
|
|
workbook.CreatedByUserGuid.Should().Be(claimsPrincipal.GetUserGuid());
|
|
workbook.CurrentUserRole.Should().Be(WorkbookRole.Editor);
|
|
dbContext.WorkbookRoleAssignments.Should().HaveCount(1);
|
|
dbContext.WorkbookRoleAssignments.FirstOrDefault().IdentityGuid.Should().Be(claimsPrincipal.GetUserGuid());
|
|
dbContext.WorkbookRoleAssignments.FirstOrDefault().Role.Should().Be(WorkbookRole.Editor);
|
|
}
|
|
|
|
[Test]
|
|
public async Task Workbook_CurrentUserAssignedAsEditorButNoRoleAssignmentsCreated_GivenUserIsStrata()
|
|
{
|
|
// arrange
|
|
var claimsPrincipal = IClaimsPrincipalAccessorMock.GetClaimsPrincipalAccessor(5, true);
|
|
var dbContext = AnalyticsDbContextMock.GetAnalyticsDbContext(claimsPrincipal);
|
|
var workbookService = new WorkbookService(dbContext, claimsPrincipal, AutoMapperMock.GetAutoMapper());
|
|
|
|
// act
|
|
var workbook = await workbookService.CreateAsync(new WorkbookCreateInfo() { Name = "Workbook1" }, CancellationToken.None);
|
|
|
|
// assert
|
|
workbook.CreatedByUserGuid.Should().Be(claimsPrincipal.GetUserGuid());
|
|
workbook.CurrentUserRole.Should().Be(WorkbookRole.Editor);
|
|
dbContext.WorkbookRoleAssignments.Should().HaveCount(0);
|
|
}
|
|
}
|
|
}
|