public async Task AddChildGroup_CustomChildGroup_BadRequestAsync() { var parentGroup = await SetupGroupAsync(Guid.NewGuid().ToString(), GroupConstants.CustomSource, "Custom Parent Group", "Custom Parent Group"); // invalid for a child group to be a custom group var childGroup1 = new GroupPostApiRequest { GroupName = Guid.NewGuid().ToString(), GroupSource = GroupConstants.CustomSource, Description = "Child Group 1", IdentityProvider = "Windows" }; var postResponse = await _browser.Post($"/groups/{parentGroup.GroupName}/groups", with => { with.HttpRequest(); with.JsonBody(new[] { new { childGroup1.GroupName, childGroup1.GroupSource, childGroup1.Description, childGroup1.IdentityProvider } }); }); Assert.Equal(HttpStatusCode.BadRequest, postResponse.StatusCode); var error = postResponse.Body.DeserializeJson <Error>(); Assert.Equal($"The following child groups do not exist in our database and cannot be created due to 1 or more of the following reasons: " + "1) missing GroupName, 2) missing GroupSource, 3) the GroupSource is incorrectly specified as Custom, or 4) The IdentityProvider field is missing or invalid: " + $"{string.Join(", ", childGroup1.GroupName)}", error.Message); }
public static Group ToGroupDomainModel(this GroupPostApiRequest groupPostApiRequest) { var group = new Group { Name = groupPostApiRequest.GroupName, IdentityProvider = groupPostApiRequest.IdentityProvider, DisplayName = groupPostApiRequest.DisplayName, Description = groupPostApiRequest.Description, Source = groupPostApiRequest.GroupSource, TenantId = groupPostApiRequest.TenantId, ExternalIdentifier = groupPostApiRequest.ExternalIdentifier }; return(group); }