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