Files
analytics/tests/Strata.Analytics.Test.Unit/Biz/Workbooks/WorkbookSourceCreateTest.cs
T
2026-06-23 11:18:54 -05:00

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