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 }