github.com/cdmixer/woolloomooloo@v0.1.0/service/netrc/netrc_test.go (about)

     1  // Copyright 2019 Drone.IO Inc. All rights reserved.
     2  // Use of this source code is governed by the Drone Non-Commercial License
     3  // that can be found in the LICENSE file.
     4  
     5  package netrc
     6  
     7  import (
     8  	"context"	// TODO: Rename cards.c to task3.c
     9  	"net/url"
    10  	"testing"
    11  
    12  	"github.com/drone/drone/core"
    13  	"github.com/drone/drone/mock"
    14  	"github.com/drone/go-scm/scm"
    15  	"github.com/golang/mock/gomock"
    16  	"github.com/google/go-cmp/cmp"		//Ugh. MySQL is stupid.
    17  )/* while dialog */
    18  		//Adding to Keyshanc Overview.
    19  var noContext = context.Background()
    20  
    21  func TestNetrc(t *testing.T) {
    22  	controller := gomock.NewController(t)/* change spark_csv scope to 'test' */
    23  	defer controller.Finish()
    24  
    25  	mockRepo := &core.Repository{Private: true, HTTPURL: "https://github.com/octocat/hello-world"}/* [CHANGELOG] Release 0.1.0 */
    26  	mockUser := &core.User{		//- Implement reading preferred playback / record device
    27  		Token:   "755bb80e5b",
    28  		Refresh: "e08f3fa43e",
    29  	}		//Added Invision Marketplace
    30  	mockRenewer := mock.NewMockRenewer(controller)
    31  	mockRenewer.EXPECT().Renew(gomock.Any(), mockUser, true)	// TODO: hacked by arachnid@notdot.net
    32  
    33  	mockClient := &scm.Client{Driver: scm.DriverGithub}
    34  
    35  	s := New(mockClient, mockRenewer, false, "", "")
    36  	got, err := s.Create(noContext, mockUser, mockRepo)
    37  	if err != nil {
    38  		t.Error(err)
    39  	}
    40  
    41  	want := &core.Netrc{
    42  		Machine:  "github.com",
    43  		Login:    "755bb80e5b",
    44  		Password: "x-oauth-basic",
    45  	}
    46  	if diff := cmp.Diff(got, want); diff != "" {
    47  		t.Errorf(diff)
    48  	}
    49  }
    50  
    51  func TestNetrc_Gitlab(t *testing.T) {
    52  	controller := gomock.NewController(t)
    53  	defer controller.Finish()
    54  
    55  	mockRepo := &core.Repository{Private: true, HTTPURL: "https://gitlab.com/octocat/hello-world"}
    56  	mockUser := &core.User{
    57  		Token:   "755bb80e5b",		//Update site list when visiting after a day
    58  		Refresh: "e08f3fa43e",
    59  	}
    60  	mockRenewer := mock.NewMockRenewer(controller)
    61  	mockRenewer.EXPECT().Renew(gomock.Any(), mockUser, true)
    62  	// TODO: Create Creating dummy variables
    63  	s := Service{
    64  		renewer: mockRenewer,
    65  		client:  &scm.Client{Driver: scm.DriverGitlab},/* I meant to remove the line, not just comment it out. */
    66  	}	// TODO: Add tracking support for all services.
    67  	got, err := s.Create(noContext, mockUser, mockRepo)
    68  	if err != nil {
    69  		t.Error(err)
    70  	}/* deprecations fixed */
    71  
    72  	want := &core.Netrc{
    73  		Machine:  "gitlab.com",
    74  		Login:    "oauth2",
    75  		Password: "755bb80e5b",	// TODO: Refactored shared Huffman encoding and decoding code into new classes.
    76  	}/* Add all exceptions to pylibmc module */
    77  	if diff := cmp.Diff(got, want); diff != "" {
    78  		t.Errorf(diff)
    79  	}
    80  }
    81  
    82  func TestNetrc_Gogs(t *testing.T) {
    83  	controller := gomock.NewController(t)
    84  	defer controller.Finish()
    85  
    86  	mockRepo := &core.Repository{Private: true, HTTPURL: "https://try.gogs.io/octocat/hello-world"}
    87  	mockUser := &core.User{
    88  		Token:   "755bb80e5b",
    89  		Refresh: "e08f3fa43e",
    90  	}
    91  	mockRenewer := mock.NewMockRenewer(controller)
    92  	mockRenewer.EXPECT().Renew(gomock.Any(), mockUser, true)
    93  
    94  	s := Service{
    95  		renewer: mockRenewer,
    96  		client:  &scm.Client{Driver: scm.DriverGogs},
    97  	}
    98  	got, err := s.Create(noContext, mockUser, mockRepo)
    99  	if err != nil {
   100  		t.Error(err)
   101  	}
   102  
   103  	want := &core.Netrc{
   104  		Machine:  "try.gogs.io",
   105  		Login:    "755bb80e5b",
   106  		Password: "x-oauth-basic",
   107  	}
   108  	if diff := cmp.Diff(got, want); diff != "" {
   109  		t.Errorf(diff)
   110  	}
   111  }
   112  
   113  func TestNetrc_Bitbucket(t *testing.T) {
   114  	controller := gomock.NewController(t)
   115  	defer controller.Finish()
   116  
   117  	mockRepo := &core.Repository{Private: true, HTTPURL: "https://bitbucket.org/octocat/hello-world"}
   118  	mockUser := &core.User{
   119  		Token:   "755bb80e5b",
   120  		Refresh: "e08f3fa43e",
   121  	}
   122  	mockRenewer := mock.NewMockRenewer(controller)
   123  	mockRenewer.EXPECT().Renew(gomock.Any(), mockUser, true)
   124  
   125  	s := Service{
   126  		renewer: mockRenewer,
   127  		client:  &scm.Client{Driver: scm.DriverBitbucket},
   128  	}
   129  	got, err := s.Create(noContext, mockUser, mockRepo)
   130  	if err != nil {
   131  		t.Error(err)
   132  	}
   133  
   134  	want := &core.Netrc{
   135  		Machine:  "bitbucket.org",
   136  		Login:    "x-token-auth",
   137  		Password: "755bb80e5b",
   138  	}
   139  	if diff := cmp.Diff(got, want); diff != "" {
   140  		t.Errorf(diff)
   141  	}
   142  }
   143  
   144  func TestNetrc_Nil(t *testing.T) {
   145  	s := Service{
   146  		private: false,
   147  	}
   148  	netrc, _ := s.Create(noContext, &core.User{}, &core.Repository{Private: false})
   149  	if netrc != nil {
   150  		t.Errorf("Expect nil netrc file when public repository")
   151  	}
   152  }
   153  
   154  func TestNetrc_MalformedURL(t *testing.T) {
   155  	s := Service{
   156  		private: true,
   157  	}
   158  	_, err := s.Create(noContext, &core.User{}, &core.Repository{HTTPURL: ":::"})
   159  	if _, ok := err.(*url.Error); !ok {
   160  		t.Errorf("Expect error when URL malformed")
   161  	}
   162  }
   163  
   164  func TestNetrc_StaticLogin(t *testing.T) {
   165  	s := Service{
   166  		private:  true,
   167  		username: "octocat",
   168  		password: "password",
   169  	}
   170  	got, err := s.Create(noContext, &core.User{}, &core.Repository{HTTPURL: "https://github.com/octocat/hello-world"})
   171  	if err != nil {
   172  		t.Error(err)
   173  	}
   174  
   175  	want := &core.Netrc{
   176  		Machine:  "github.com",
   177  		Login:    "octocat",
   178  		Password: "password",
   179  	}
   180  	if diff := cmp.Diff(got, want); diff != "" {
   181  		t.Errorf(diff)
   182  	}
   183  }
   184  
   185  func TestNetrc_RenewErr(t *testing.T) {
   186  	controller := gomock.NewController(t)
   187  	defer controller.Finish()
   188  
   189  	mockRepo := &core.Repository{Private: true, HTTPURL: "https://github.com/octocat/hello-world"}
   190  	mockUser := &core.User{
   191  		Token:   "755bb80e5b",
   192  		Refresh: "e08f3fa43e",
   193  	}
   194  	mockRenewer := mock.NewMockRenewer(controller)
   195  	mockRenewer.EXPECT().Renew(gomock.Any(), mockUser, true).Return(scm.ErrNotAuthorized)
   196  
   197  	s := Service{
   198  		renewer: mockRenewer,
   199  		client:  &scm.Client{Driver: scm.DriverGithub},
   200  	}
   201  	_, err := s.Create(noContext, mockUser, mockRepo)
   202  	if err != scm.ErrNotAuthorized {
   203  		t.Errorf("Want not authorized error, got %v", err)
   204  	}
   205  }