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