Esempio n. 1
0
        public async Task CreateAsync_RequirePermissionsAsyncSucceeds_ReturnsCreateAsync(
            ulong currentUserId,
            long roleId)
        {
            using var testContext = new TestContext();

            testContext.SetCurrentUserId(currentUserId);

            testContext.MockRolesService
            .Setup(x => x.CreateAsync(It.IsAny <RoleCreationModel>(), It.IsAny <ulong>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(roleId);

            var uut = testContext.BuildUut();

            var creationModel = new RoleCreationModel();

            var result = await uut.CreateAsync(
                creationModel,
                testContext.CancellationToken);

            result.IsSuccess.ShouldBeTrue();
            result.Value.ShouldBe(roleId);

            testContext.MockAuthorizationService.ShouldHaveReceived(x => x
                                                                    .RequirePermissionsAsync(
                                                                        It.Is <int[]>(y => (y != null) && (y.Length != 0)),
                                                                        testContext.CancellationToken));

            testContext.MockRolesService
            .ShouldHaveReceived(x => x.CreateAsync(creationModel, currentUserId, testContext.CancellationToken));

            testContext.MockRolesRepository.Invocations.ShouldBeEmpty();
        }
Esempio n. 2
0
        public async Task CreateAsync_RequirePermissionsAsyncFails_ReturnsImmediately()
        {
            using var testContext = new TestContext();

            var mockError = new Mock <OperationError>("Mock Message");

            testContext.RequirePermissionsResult = OperationResult.FromError(mockError.Object);

            var uut = testContext.BuildUut();

            var creationModel = new RoleCreationModel();

            var result = await uut.CreateAsync(
                creationModel,
                testContext.CancellationToken);

            result.IsFailure.ShouldBeTrue();
            result.Error.ShouldBeSameAs(mockError.Object);

            testContext.MockAuthorizationService.ShouldHaveReceived(x => x
                                                                    .RequirePermissionsAsync(
                                                                        It.Is <int[]>(y => (y != null) && (y.Length != 0)),
                                                                        testContext.CancellationToken));

            testContext.MockRolesService.Invocations.ShouldBeEmpty();
            testContext.MockRolesRepository.Invocations.ShouldBeEmpty();
        }