1// Copyright 2017 The go-github AUTHORS. All rights reserved. 2// 3// Use of this source code is governed by a BSD-style 4// license that can be found in the LICENSE file. 5 6package github 7 8import ( 9 "context" 10 "fmt" 11 "net/http" 12 "reflect" 13 "testing" 14) 15 16func TestOrganizationsService_ListBlockedUsers(t *testing.T) { 17 client, mux, _, teardown := setup() 18 defer teardown() 19 20 mux.HandleFunc("/orgs/o/blocks", func(w http.ResponseWriter, r *http.Request) { 21 testMethod(t, r, "GET") 22 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview) 23 testFormValues(t, r, values{"page": "2"}) 24 fmt.Fprint(w, `[{ 25 "login": "octocat" 26 }]`) 27 }) 28 29 opt := &ListOptions{Page: 2} 30 blockedUsers, _, err := client.Organizations.ListBlockedUsers(context.Background(), "o", opt) 31 if err != nil { 32 t.Errorf("Organizations.ListBlockedUsers returned error: %v", err) 33 } 34 35 want := []*User{{Login: String("octocat")}} 36 if !reflect.DeepEqual(blockedUsers, want) { 37 t.Errorf("Organizations.ListBlockedUsers returned %+v, want %+v", blockedUsers, want) 38 } 39} 40 41func TestOrganizationsService_IsBlocked(t *testing.T) { 42 client, mux, _, teardown := setup() 43 defer teardown() 44 45 mux.HandleFunc("/orgs/o/blocks/u", func(w http.ResponseWriter, r *http.Request) { 46 testMethod(t, r, "GET") 47 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview) 48 w.WriteHeader(http.StatusNoContent) 49 }) 50 51 isBlocked, _, err := client.Organizations.IsBlocked(context.Background(), "o", "u") 52 if err != nil { 53 t.Errorf("Organizations.IsBlocked returned error: %v", err) 54 } 55 if want := true; isBlocked != want { 56 t.Errorf("Organizations.IsBlocked returned %+v, want %+v", isBlocked, want) 57 } 58} 59 60func TestOrganizationsService_BlockUser(t *testing.T) { 61 client, mux, _, teardown := setup() 62 defer teardown() 63 64 mux.HandleFunc("/orgs/o/blocks/u", func(w http.ResponseWriter, r *http.Request) { 65 testMethod(t, r, "PUT") 66 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview) 67 w.WriteHeader(http.StatusNoContent) 68 }) 69 70 _, err := client.Organizations.BlockUser(context.Background(), "o", "u") 71 if err != nil { 72 t.Errorf("Organizations.BlockUser returned error: %v", err) 73 } 74} 75 76func TestOrganizationsService_UnblockUser(t *testing.T) { 77 client, mux, _, teardown := setup() 78 defer teardown() 79 80 mux.HandleFunc("/orgs/o/blocks/u", func(w http.ResponseWriter, r *http.Request) { 81 testMethod(t, r, "DELETE") 82 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview) 83 w.WriteHeader(http.StatusNoContent) 84 }) 85 86 _, err := client.Organizations.UnblockUser(context.Background(), "o", "u") 87 if err != nil { 88 t.Errorf("Organizations.UnblockUser returned error: %v", err) 89 } 90} 91