示例#1
0
        public async Task CreateAsync_GuildChannelDoesNotExist_InsertsGuildChannel(GuildChannelCreationData data)
        {
            (var modixContext, var uut) = BuildTestContext();

            using (var cancellationTokenSource = new CancellationTokenSource())
            {
                await uut.CreateAsync(data, cancellationTokenSource.Token);

                modixContext.GuildChannels
                .ShouldContain(x => x.ChannelId == data.ChannelId);
                var channel = modixContext.GuildChannels
                              .First(x => x.ChannelId == data.ChannelId);

                channel.GuildId.ShouldBe(data.GuildId);
                channel.Name.ShouldBe(data.Name);

                modixContext.GuildChannels
                .Where(x => x.ChannelId != channel.ChannelId)
                .Select(x => x.ChannelId)
                .ShouldBe(GuildChannels.Entities
                          .Select(x => x.ChannelId));

                modixContext.GuildChannels
                .Where(x => x.ChannelId != channel.ChannelId)
                .EachShould(x => x.ShouldNotHaveChanged());

                await modixContext.ShouldHaveReceived(1)
                .SaveChangesAsync(cancellationTokenSource.Token);
            }
        }
示例#2
0
        /// <inheritdoc />
        public async Task CreateAsync(GuildChannelCreationData data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            var entity = data.ToEntity();

            await ModixContext.GuildChannels.AddAsync(entity);

            await ModixContext.SaveChangesAsync();
        }
        /// <inheritdoc />
        public async Task CreateAsync(GuildChannelCreationData data, CancellationToken cancellationToken = default)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            var entity = data.ToEntity();

            await ModixContext.Set <GuildChannelEntity>().AddAsync(entity, cancellationToken);

            await ModixContext.SaveChangesAsync(cancellationToken);
        }
示例#4
0
        public async Task CreateAsync_GuildChannelExists_DoesNotUpdateGuildChannelsAndThrowsException(GuildChannelCreationData data)
        {
            (var modixContext, var uut) = BuildTestContext();

            await Should.ThrowAsync <InvalidOperationException>(uut.CreateAsync(data));

            modixContext.GuildChannels
            .AsQueryable()
            .Select(x => x.ChannelId)
            .ShouldBe(GuildChannels.Entities
                      .Select(x => x.ChannelId));

            modixContext.GuildChannels
            .EachShould(x => x.ShouldNotHaveChanged());

            await modixContext.ShouldNotHaveReceived()
            .SaveChangesAsync(Arg.Any <CancellationToken>());
        }