コード例 #1
0
        public async Task UpdateAsync_RequirePermissionsAsyncSucceeds_ReturnsUpdateAsync(
            ulong currentUserId,
            long guildId)
        {
            using var testContext = new TestContext();

            testContext.SetCurrentUserId(currentUserId);

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

            testContext.MockCharacterGuildsService
            .Setup(x => x.UpdateAsync(It.IsAny <long>(), It.IsAny <CharacterGuildUpdateModel>(), It.IsAny <ulong>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(OperationResult.FromError(mockError.Object));

            var uut = testContext.BuildUut();

            var updateModel = new CharacterGuildUpdateModel();

            var result = await uut.UpdateAsync(
                guildId,
                updateModel,
                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.MockCharacterGuildsService.ShouldHaveReceived(x => x
                                                                      .UpdateAsync(guildId, updateModel, currentUserId, testContext.CancellationToken));
        }
コード例 #2
0
        public async Task UpdateAsync_RequirePermissionsAsyncFails_ReturnsImmediately(
            long guildId)
        {
            using var testContext = new TestContext();

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

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

            var uut = testContext.BuildUut();

            var updateModel = new CharacterGuildUpdateModel();

            var result = await uut.UpdateAsync(
                guildId,
                updateModel,
                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.MockCharacterGuildsService.Invocations.ShouldBeEmpty();
        }