Exemplo n.º 1
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 CharacterGuildCreationModel();

            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.MockCharacterGuildsService.Invocations.ShouldBeEmpty();
        }
Exemplo n.º 2
0
        public async Task CreateAsync_RequirePermissionsAsyncSucceeds_ReturnsCreateAsync(
            ulong currentUserId,
            long guildId)
        {
            using var testContext = new TestContext();

            testContext.SetCurrentUserId(currentUserId);

            testContext.MockCharacterGuildsService
            .Setup(x => x.CreateAsync(It.IsAny <CharacterGuildCreationModel>(), It.IsAny <ulong>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(guildId);

            var uut = testContext.BuildUut();

            var creationModel = new CharacterGuildCreationModel();

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

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

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

            testContext.MockCharacterGuildsService
            .ShouldHaveReceived(x => x.CreateAsync(creationModel, currentUserId, testContext.CancellationToken));
        }
        public async Task CreateAsync_NameIsInUse_ReturnsNameInUseError(
            ulong performedById,
            string name)
        {
            using var testContext = new TestContext();

            testContext.SetIsNameInUse(name, true);

            var uut = testContext.BuildUut();

            var creationModel = new CharacterGuildCreationModel()
            {
                Name = name
            };

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

            testContext.MockTransactionScopeFactory.ShouldHaveReceived(x => x
                                                                       .CreateScope(default));