@@ -333,3 +333,108 @@ func TestEnterpriseService_ListProvisionedSCIMGroups(t *testing.T) {
333333 return r , err
334334 })
335335}
336+
337+ func TestEnterpriseService_ListProvisionedSCIMUsers (t * testing.T ) {
338+ t .Parallel ()
339+ client , mux , _ := setup (t )
340+
341+ mux .HandleFunc ("/scim/v2/enterprises/octo-org/Users" , func (w http.ResponseWriter , r * http.Request ) {
342+ testMethod (t , r , "GET" )
343+ testHeader (t , r , "Accept" , mediaTypeSCIM )
344+ testFormValues (t , r , values {
345+ "startIndex" : "1" ,
346+ "count" : "3" ,
347+ "filter" :
`userName eq "[email protected] "` ,
348+ })
349+ w .WriteHeader (http .StatusOK )
350+ _ , _ = w .Write ([]byte (`{
351+ "schemas": ["` + SCIMSchemasURINamespacesListResponse + `"],
352+ "totalResults": 1,
353+ "itemsPerPage": 1,
354+ "startIndex": 1,
355+ "Resources": [
356+ {
357+ "schemas": ["` + SCIMSchemasURINamespacesUser + `"],
358+ "id": "5fc0",
359+ "externalId": "00u1",
360+ 361+ "displayName": "Mona Octocat",
362+ "name": {
363+ "givenName": "Mona",
364+ "familyName": "Octocat",
365+ "formatted": "Mona Octocat"
366+ },
367+ "emails": [
368+ {
369+ 370+ "primary": true
371+ }
372+ ],
373+ "active": true,
374+ "meta": {
375+ "resourceType": "User",
376+ "created": ` + referenceTimeStr + `,
377+ "lastModified": ` + referenceTimeStr + `,
378+ "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/5fc0"
379+ }
380+ }
381+ ]
382+ }` ))
383+ })
384+
385+ ctx := t .Context ()
386+ opts := & ListProvisionedSCIMUsersEnterpriseOptions {
387+ StartIndex : 1 ,
388+ Count : 3 ,
389+ Filter :
`userName eq "[email protected] "` ,
390+ }
391+ users , _ , err := client .Enterprise .ListProvisionedSCIMUsers (ctx , "octo-org" , opts )
392+ if err != nil {
393+ t .Fatalf ("Enterprise.ListProvisionedSCIMUsers returned unexpected error: %v" , err )
394+ }
395+
396+ want := SCIMEnterpriseUsers {
397+ Schemas : []string {SCIMSchemasURINamespacesListResponse },
398+ TotalResults : Ptr (1 ),
399+ ItemsPerPage : Ptr (1 ),
400+ StartIndex : Ptr (1 ),
401+ Resources : []* SCIMEnterpriseUserAttributes {{
402+ Schemas : []string {SCIMSchemasURINamespacesUser },
403+ ID : Ptr ("5fc0" ),
404+ ExternalID : "00u1" ,
405+ 406+ DisplayName : "Mona Octocat" ,
407+ Name : & SCIMEnterpriseUserName {
408+ GivenName : "Mona" ,
409+ FamilyName : "Octocat" ,
410+ Formatted : Ptr ("Mona Octocat" ),
411+ },
412+ Emails : []* SCIMEnterpriseUserEmail {{
413+ 414+ Primary : true ,
415+ }},
416+ Active : true ,
417+ Meta : & SCIMEnterpriseMeta {
418+ ResourceType : "User" ,
419+ Created : & Timestamp {referenceTime },
420+ LastModified : & Timestamp {referenceTime },
421+ Location : Ptr ("https://api.github.com/scim/v2/organizations/octo-org/Users/5fc0" ),
422+ },
423+ }},
424+ }
425+
426+ if diff := cmp .Diff (want , * users ); diff != "" {
427+ t .Errorf ("Enterprise.ListProvisionedSCIMUsers diff mismatch (-want +got):\n %v" , diff )
428+ }
429+
430+ const methodName = "ListProvisionedSCIMUsers"
431+ testBadOptions (t , methodName , func () (err error ) {
432+ _ , _ , err = client .Enterprise .ListProvisionedSCIMUsers (ctx , "\n " , opts )
433+ return err
434+ })
435+
436+ testNewRequestAndDoFailure (t , methodName , client , func () (* Response , error ) {
437+ _ , r , err := client .Enterprise .ListProvisionedSCIMUsers (ctx , "o" , opts )
438+ return r , err
439+ })
440+ }
0 commit comments