...

Source file src/github.com/google/go-github/v55/github/users_blocking_test.go

Documentation: github.com/google/go-github/v55/github

     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  
     6  package github
     7  
     8  import (
     9  	"context"
    10  	"fmt"
    11  	"net/http"
    12  	"testing"
    13  
    14  	"github.com/google/go-cmp/cmp"
    15  )
    16  
    17  func TestUsersService_ListBlockedUsers(t *testing.T) {
    18  	client, mux, _, teardown := setup()
    19  	defer teardown()
    20  
    21  	mux.HandleFunc("/user/blocks", func(w http.ResponseWriter, r *http.Request) {
    22  		testMethod(t, r, "GET")
    23  		testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
    24  		testFormValues(t, r, values{"page": "2"})
    25  		fmt.Fprint(w, `[{
    26  			"login": "octocat"
    27  		}]`)
    28  	})
    29  
    30  	opt := &ListOptions{Page: 2}
    31  	ctx := context.Background()
    32  	blockedUsers, _, err := client.Users.ListBlockedUsers(ctx, opt)
    33  	if err != nil {
    34  		t.Errorf("Users.ListBlockedUsers returned error: %v", err)
    35  	}
    36  
    37  	want := []*User{{Login: String("octocat")}}
    38  	if !cmp.Equal(blockedUsers, want) {
    39  		t.Errorf("Users.ListBlockedUsers returned %+v, want %+v", blockedUsers, want)
    40  	}
    41  
    42  	const methodName = "ListBlockedUsers"
    43  	testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
    44  		got, resp, err := client.Users.ListBlockedUsers(ctx, opt)
    45  		if got != nil {
    46  			t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
    47  		}
    48  		return resp, err
    49  	})
    50  }
    51  
    52  func TestUsersService_IsBlocked(t *testing.T) {
    53  	client, mux, _, teardown := setup()
    54  	defer teardown()
    55  
    56  	mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
    57  		testMethod(t, r, "GET")
    58  		testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
    59  		w.WriteHeader(http.StatusNoContent)
    60  	})
    61  
    62  	ctx := context.Background()
    63  	isBlocked, _, err := client.Users.IsBlocked(ctx, "u")
    64  	if err != nil {
    65  		t.Errorf("Users.IsBlocked returned error: %v", err)
    66  	}
    67  	if want := true; isBlocked != want {
    68  		t.Errorf("Users.IsBlocked returned %+v, want %+v", isBlocked, want)
    69  	}
    70  
    71  	const methodName = "IsBlocked"
    72  	testBadOptions(t, methodName, func() (err error) {
    73  		_, _, err = client.Users.IsBlocked(ctx, "\n")
    74  		return err
    75  	})
    76  
    77  	testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
    78  		got, resp, err := client.Users.IsBlocked(ctx, "u")
    79  		if got {
    80  			t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
    81  		}
    82  		return resp, err
    83  	})
    84  }
    85  
    86  func TestUsersService_BlockUser(t *testing.T) {
    87  	client, mux, _, teardown := setup()
    88  	defer teardown()
    89  
    90  	mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
    91  		testMethod(t, r, "PUT")
    92  		testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
    93  		w.WriteHeader(http.StatusNoContent)
    94  	})
    95  
    96  	ctx := context.Background()
    97  	_, err := client.Users.BlockUser(ctx, "u")
    98  	if err != nil {
    99  		t.Errorf("Users.BlockUser returned error: %v", err)
   100  	}
   101  
   102  	const methodName = "BlockUser"
   103  	testBadOptions(t, methodName, func() (err error) {
   104  		_, err = client.Users.BlockUser(ctx, "\n")
   105  		return err
   106  	})
   107  
   108  	testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
   109  		return client.Users.BlockUser(ctx, "u")
   110  	})
   111  }
   112  
   113  func TestUsersService_UnblockUser(t *testing.T) {
   114  	client, mux, _, teardown := setup()
   115  	defer teardown()
   116  
   117  	mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
   118  		testMethod(t, r, "DELETE")
   119  		testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
   120  		w.WriteHeader(http.StatusNoContent)
   121  	})
   122  
   123  	ctx := context.Background()
   124  	_, err := client.Users.UnblockUser(ctx, "u")
   125  	if err != nil {
   126  		t.Errorf("Users.UnblockUser returned error: %v", err)
   127  	}
   128  
   129  	const methodName = "UnblockUser"
   130  	testBadOptions(t, methodName, func() (err error) {
   131  		_, err = client.Users.UnblockUser(ctx, "\n")
   132  		return err
   133  	})
   134  
   135  	testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
   136  		return client.Users.UnblockUser(ctx, "u")
   137  	})
   138  }
   139  

View as plain text