예제 #1
0
        public async Task CreateAsync_GuildRoleDoesNotExist_InsertsGuildRole(GuildRoleCreationData data)
        {
            (var modixContext, var uut) = BuildTestContext();

            await uut.CreateAsync(data);

            modixContext.GuildRoles.ShouldContain(x => x.RoleId == data.RoleId);
            var role = modixContext.GuildRoles.First(x => x.RoleId == data.RoleId);

            role.GuildId.ShouldBe(data.GuildId);
            role.Name.ShouldBe(data.Name);
            role.Position.ShouldBe(data.Position);

            modixContext.GuildRoles
            .Where(x => x.RoleId != role.RoleId)
            .Select(x => x.RoleId)
            .ShouldBe(GuildRoles.Entities
                      .Select(x => x.RoleId));

            modixContext.GuildRoles
            .Where(x => x.RoleId != role.RoleId)
            .EachShould(x => x.ShouldNotHaveChanged());

            await modixContext.ShouldHaveReceived(1)
            .SaveChangesAsync();
        }
예제 #2
0
        /// <inheritdoc />
        public async Task CreateAsync(GuildRoleCreationData data)
        {
            if (data == null)
                throw new ArgumentNullException(nameof(data));

            var entity = data.ToEntity();

            await ModixContext.GuildRoles.AddAsync(entity);
            await ModixContext.SaveChangesAsync();
        }
예제 #3
0
        public async Task CreateAsync_GuildRoleExists_DoesNotUpdateGuildRolesAndThrowsException(GuildRoleCreationData data)
        {
            (var modixContext, var uut) = BuildTestContext();

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

            modixContext.GuildRoles
            .Select(x => x.RoleId)
            .ShouldBe(GuildRoles.Entities
                      .Select(x => x.RoleId));

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

            await modixContext.ShouldNotHaveReceived()
            .SaveChangesAsync();
        }