/// <inheritdoc /> public async Task <long> CreateAsync(DesignatedRoleMappingCreationData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var entity = data.ToEntity(); await ModixContext.Set <DesignatedRoleMappingEntity>().AddAsync(entity); await ModixContext.SaveChangesAsync(); entity.CreateAction.DesignatedRoleMappingId = entity.Id; await ModixContext.SaveChangesAsync(); return(entity.Id); }
public async Task CreateAsync_DataIsNotNull_InsertsDesignatedRoleMapping(DesignatedRoleMappingCreationData data) { (var modixContext, var uut) = BuildTestContext(); var id = await uut.CreateAsync(data); modixContext.Set <DesignatedRoleMappingEntity>().ShouldContain(x => x.Id == id); var designatedRoleMapping = modixContext.Set <DesignatedRoleMappingEntity>().First(x => x.Id == id); designatedRoleMapping.GuildId.ShouldBe(data.GuildId); designatedRoleMapping.Type.ShouldBe(data.Type); designatedRoleMapping.RoleId.ShouldBe(data.RoleId); designatedRoleMapping.CreateActionId.ShouldNotBeNull(); designatedRoleMapping.DeleteActionId.ShouldBeNull(); modixContext.Set <DesignatedRoleMappingEntity>().Where(x => x.Id != designatedRoleMapping.Id).Select(x => x.Id).ShouldBe(DesignatedRoleMappings.Entities.Select(x => x.Id)); modixContext.Set <DesignatedRoleMappingEntity>().Where(x => x.Id != designatedRoleMapping.Id).EachShould(x => x.ShouldNotHaveChanged()); modixContext.Set <ConfigurationActionEntity>().ShouldContain(x => x.Id == designatedRoleMapping.CreateActionId); var createAction = modixContext.Set <ConfigurationActionEntity>().First(x => x.Id == designatedRoleMapping.CreateActionId); createAction.GuildId.ShouldBe(data.GuildId); createAction.Type.ShouldBe(ConfigurationActionType.DesignatedRoleMappingCreated); createAction.Created.ShouldBeInRange( DateTimeOffset.Now - TimeSpan.FromSeconds(1), DateTimeOffset.Now + TimeSpan.FromSeconds(1)); createAction.CreatedById.ShouldBe(data.CreatedById); createAction.DesignatedChannelMappingId.ShouldBeNull(); createAction.DesignatedRoleMappingId.ShouldNotBeNull(); createAction.DesignatedRoleMappingId.ShouldBe(designatedRoleMapping.Id); modixContext.Set <ConfigurationActionEntity>().Where(x => x.Id != createAction.Id).Select(x => x.Id).ShouldBe(ConfigurationActions.Entities.Where(x => !(x.DesignatedRoleMappingId is null)).Select(x => x.Id)); modixContext.Set <ConfigurationActionEntity>().Where(x => x.Id != createAction.Id).EachShould(x => x.ShouldNotHaveChanged()); await modixContext.ShouldHaveReceived(2) .SaveChangesAsync(); }