Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 

521 righe
15 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package oslogin
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. commonpb "google.golang.org/genproto/googleapis/cloud/oslogin/common"
  19. osloginpb "google.golang.org/genproto/googleapis/cloud/oslogin/v1"
  20. )
  21. import (
  22. "context"
  23. "flag"
  24. "fmt"
  25. "io"
  26. "log"
  27. "net"
  28. "os"
  29. "strings"
  30. "testing"
  31. "github.com/golang/protobuf/proto"
  32. "github.com/golang/protobuf/ptypes"
  33. "google.golang.org/api/option"
  34. status "google.golang.org/genproto/googleapis/rpc/status"
  35. "google.golang.org/grpc"
  36. "google.golang.org/grpc/codes"
  37. "google.golang.org/grpc/metadata"
  38. gstatus "google.golang.org/grpc/status"
  39. )
  40. var _ = io.EOF
  41. var _ = ptypes.MarshalAny
  42. var _ status.Status
  43. type mockOsLoginServer struct {
  44. // Embed for forward compatibility.
  45. // Tests will keep working if more methods are added
  46. // in the future.
  47. osloginpb.OsLoginServiceServer
  48. reqs []proto.Message
  49. // If set, all calls return this error.
  50. err error
  51. // responses to return if err == nil
  52. resps []proto.Message
  53. }
  54. func (s *mockOsLoginServer) DeletePosixAccount(ctx context.Context, req *osloginpb.DeletePosixAccountRequest) (*emptypb.Empty, error) {
  55. md, _ := metadata.FromIncomingContext(ctx)
  56. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  57. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  58. }
  59. s.reqs = append(s.reqs, req)
  60. if s.err != nil {
  61. return nil, s.err
  62. }
  63. return s.resps[0].(*emptypb.Empty), nil
  64. }
  65. func (s *mockOsLoginServer) DeleteSshPublicKey(ctx context.Context, req *osloginpb.DeleteSshPublicKeyRequest) (*emptypb.Empty, error) {
  66. md, _ := metadata.FromIncomingContext(ctx)
  67. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  68. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  69. }
  70. s.reqs = append(s.reqs, req)
  71. if s.err != nil {
  72. return nil, s.err
  73. }
  74. return s.resps[0].(*emptypb.Empty), nil
  75. }
  76. func (s *mockOsLoginServer) GetLoginProfile(ctx context.Context, req *osloginpb.GetLoginProfileRequest) (*osloginpb.LoginProfile, error) {
  77. md, _ := metadata.FromIncomingContext(ctx)
  78. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  79. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  80. }
  81. s.reqs = append(s.reqs, req)
  82. if s.err != nil {
  83. return nil, s.err
  84. }
  85. return s.resps[0].(*osloginpb.LoginProfile), nil
  86. }
  87. func (s *mockOsLoginServer) GetSshPublicKey(ctx context.Context, req *osloginpb.GetSshPublicKeyRequest) (*commonpb.SshPublicKey, error) {
  88. md, _ := metadata.FromIncomingContext(ctx)
  89. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  90. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  91. }
  92. s.reqs = append(s.reqs, req)
  93. if s.err != nil {
  94. return nil, s.err
  95. }
  96. return s.resps[0].(*commonpb.SshPublicKey), nil
  97. }
  98. func (s *mockOsLoginServer) ImportSshPublicKey(ctx context.Context, req *osloginpb.ImportSshPublicKeyRequest) (*osloginpb.ImportSshPublicKeyResponse, error) {
  99. md, _ := metadata.FromIncomingContext(ctx)
  100. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  101. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  102. }
  103. s.reqs = append(s.reqs, req)
  104. if s.err != nil {
  105. return nil, s.err
  106. }
  107. return s.resps[0].(*osloginpb.ImportSshPublicKeyResponse), nil
  108. }
  109. func (s *mockOsLoginServer) UpdateSshPublicKey(ctx context.Context, req *osloginpb.UpdateSshPublicKeyRequest) (*commonpb.SshPublicKey, error) {
  110. md, _ := metadata.FromIncomingContext(ctx)
  111. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  112. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  113. }
  114. s.reqs = append(s.reqs, req)
  115. if s.err != nil {
  116. return nil, s.err
  117. }
  118. return s.resps[0].(*commonpb.SshPublicKey), nil
  119. }
  120. // clientOpt is the option tests should use to connect to the test server.
  121. // It is initialized by TestMain.
  122. var clientOpt option.ClientOption
  123. var (
  124. mockOsLogin mockOsLoginServer
  125. )
  126. func TestMain(m *testing.M) {
  127. flag.Parse()
  128. serv := grpc.NewServer()
  129. osloginpb.RegisterOsLoginServiceServer(serv, &mockOsLogin)
  130. lis, err := net.Listen("tcp", "localhost:0")
  131. if err != nil {
  132. log.Fatal(err)
  133. }
  134. go serv.Serve(lis)
  135. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  136. if err != nil {
  137. log.Fatal(err)
  138. }
  139. clientOpt = option.WithGRPCConn(conn)
  140. os.Exit(m.Run())
  141. }
  142. func TestOsLoginServiceDeletePosixAccount(t *testing.T) {
  143. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  144. mockOsLogin.err = nil
  145. mockOsLogin.reqs = nil
  146. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  147. var formattedName string = fmt.Sprintf("users/%s/projects/%s", "[USER]", "[PROJECT]")
  148. var request = &osloginpb.DeletePosixAccountRequest{
  149. Name: formattedName,
  150. }
  151. c, err := NewClient(context.Background(), clientOpt)
  152. if err != nil {
  153. t.Fatal(err)
  154. }
  155. err = c.DeletePosixAccount(context.Background(), request)
  156. if err != nil {
  157. t.Fatal(err)
  158. }
  159. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  160. t.Errorf("wrong request %q, want %q", got, want)
  161. }
  162. }
  163. func TestOsLoginServiceDeletePosixAccountError(t *testing.T) {
  164. errCode := codes.PermissionDenied
  165. mockOsLogin.err = gstatus.Error(errCode, "test error")
  166. var formattedName string = fmt.Sprintf("users/%s/projects/%s", "[USER]", "[PROJECT]")
  167. var request = &osloginpb.DeletePosixAccountRequest{
  168. Name: formattedName,
  169. }
  170. c, err := NewClient(context.Background(), clientOpt)
  171. if err != nil {
  172. t.Fatal(err)
  173. }
  174. err = c.DeletePosixAccount(context.Background(), request)
  175. if st, ok := gstatus.FromError(err); !ok {
  176. t.Errorf("got error %v, expected grpc error", err)
  177. } else if c := st.Code(); c != errCode {
  178. t.Errorf("got error code %q, want %q", c, errCode)
  179. }
  180. }
  181. func TestOsLoginServiceDeleteSshPublicKey(t *testing.T) {
  182. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  183. mockOsLogin.err = nil
  184. mockOsLogin.reqs = nil
  185. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  186. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  187. var request = &osloginpb.DeleteSshPublicKeyRequest{
  188. Name: formattedName,
  189. }
  190. c, err := NewClient(context.Background(), clientOpt)
  191. if err != nil {
  192. t.Fatal(err)
  193. }
  194. err = c.DeleteSshPublicKey(context.Background(), request)
  195. if err != nil {
  196. t.Fatal(err)
  197. }
  198. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  199. t.Errorf("wrong request %q, want %q", got, want)
  200. }
  201. }
  202. func TestOsLoginServiceDeleteSshPublicKeyError(t *testing.T) {
  203. errCode := codes.PermissionDenied
  204. mockOsLogin.err = gstatus.Error(errCode, "test error")
  205. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  206. var request = &osloginpb.DeleteSshPublicKeyRequest{
  207. Name: formattedName,
  208. }
  209. c, err := NewClient(context.Background(), clientOpt)
  210. if err != nil {
  211. t.Fatal(err)
  212. }
  213. err = c.DeleteSshPublicKey(context.Background(), request)
  214. if st, ok := gstatus.FromError(err); !ok {
  215. t.Errorf("got error %v, expected grpc error", err)
  216. } else if c := st.Code(); c != errCode {
  217. t.Errorf("got error code %q, want %q", c, errCode)
  218. }
  219. }
  220. func TestOsLoginServiceGetLoginProfile(t *testing.T) {
  221. var name2 string = "name2-1052831874"
  222. var suspended bool = false
  223. var expectedResponse = &osloginpb.LoginProfile{
  224. Name: name2,
  225. Suspended: suspended,
  226. }
  227. mockOsLogin.err = nil
  228. mockOsLogin.reqs = nil
  229. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  230. var formattedName string = fmt.Sprintf("users/%s", "[USER]")
  231. var request = &osloginpb.GetLoginProfileRequest{
  232. Name: formattedName,
  233. }
  234. c, err := NewClient(context.Background(), clientOpt)
  235. if err != nil {
  236. t.Fatal(err)
  237. }
  238. resp, err := c.GetLoginProfile(context.Background(), request)
  239. if err != nil {
  240. t.Fatal(err)
  241. }
  242. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  243. t.Errorf("wrong request %q, want %q", got, want)
  244. }
  245. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  246. t.Errorf("wrong response %q, want %q)", got, want)
  247. }
  248. }
  249. func TestOsLoginServiceGetLoginProfileError(t *testing.T) {
  250. errCode := codes.PermissionDenied
  251. mockOsLogin.err = gstatus.Error(errCode, "test error")
  252. var formattedName string = fmt.Sprintf("users/%s", "[USER]")
  253. var request = &osloginpb.GetLoginProfileRequest{
  254. Name: formattedName,
  255. }
  256. c, err := NewClient(context.Background(), clientOpt)
  257. if err != nil {
  258. t.Fatal(err)
  259. }
  260. resp, err := c.GetLoginProfile(context.Background(), request)
  261. if st, ok := gstatus.FromError(err); !ok {
  262. t.Errorf("got error %v, expected grpc error", err)
  263. } else if c := st.Code(); c != errCode {
  264. t.Errorf("got error code %q, want %q", c, errCode)
  265. }
  266. _ = resp
  267. }
  268. func TestOsLoginServiceGetSshPublicKey(t *testing.T) {
  269. var key string = "key106079"
  270. var expirationTimeUsec int64 = 2058878882
  271. var fingerprint string = "fingerprint-1375934236"
  272. var expectedResponse = &commonpb.SshPublicKey{
  273. Key: key,
  274. ExpirationTimeUsec: expirationTimeUsec,
  275. Fingerprint: fingerprint,
  276. }
  277. mockOsLogin.err = nil
  278. mockOsLogin.reqs = nil
  279. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  280. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  281. var request = &osloginpb.GetSshPublicKeyRequest{
  282. Name: formattedName,
  283. }
  284. c, err := NewClient(context.Background(), clientOpt)
  285. if err != nil {
  286. t.Fatal(err)
  287. }
  288. resp, err := c.GetSshPublicKey(context.Background(), request)
  289. if err != nil {
  290. t.Fatal(err)
  291. }
  292. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  293. t.Errorf("wrong request %q, want %q", got, want)
  294. }
  295. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  296. t.Errorf("wrong response %q, want %q)", got, want)
  297. }
  298. }
  299. func TestOsLoginServiceGetSshPublicKeyError(t *testing.T) {
  300. errCode := codes.PermissionDenied
  301. mockOsLogin.err = gstatus.Error(errCode, "test error")
  302. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  303. var request = &osloginpb.GetSshPublicKeyRequest{
  304. Name: formattedName,
  305. }
  306. c, err := NewClient(context.Background(), clientOpt)
  307. if err != nil {
  308. t.Fatal(err)
  309. }
  310. resp, err := c.GetSshPublicKey(context.Background(), request)
  311. if st, ok := gstatus.FromError(err); !ok {
  312. t.Errorf("got error %v, expected grpc error", err)
  313. } else if c := st.Code(); c != errCode {
  314. t.Errorf("got error code %q, want %q", c, errCode)
  315. }
  316. _ = resp
  317. }
  318. func TestOsLoginServiceImportSshPublicKey(t *testing.T) {
  319. var expectedResponse *osloginpb.ImportSshPublicKeyResponse = &osloginpb.ImportSshPublicKeyResponse{}
  320. mockOsLogin.err = nil
  321. mockOsLogin.reqs = nil
  322. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  323. var formattedParent string = fmt.Sprintf("users/%s", "[USER]")
  324. var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
  325. var request = &osloginpb.ImportSshPublicKeyRequest{
  326. Parent: formattedParent,
  327. SshPublicKey: sshPublicKey,
  328. }
  329. c, err := NewClient(context.Background(), clientOpt)
  330. if err != nil {
  331. t.Fatal(err)
  332. }
  333. resp, err := c.ImportSshPublicKey(context.Background(), request)
  334. if err != nil {
  335. t.Fatal(err)
  336. }
  337. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  338. t.Errorf("wrong request %q, want %q", got, want)
  339. }
  340. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  341. t.Errorf("wrong response %q, want %q)", got, want)
  342. }
  343. }
  344. func TestOsLoginServiceImportSshPublicKeyError(t *testing.T) {
  345. errCode := codes.PermissionDenied
  346. mockOsLogin.err = gstatus.Error(errCode, "test error")
  347. var formattedParent string = fmt.Sprintf("users/%s", "[USER]")
  348. var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
  349. var request = &osloginpb.ImportSshPublicKeyRequest{
  350. Parent: formattedParent,
  351. SshPublicKey: sshPublicKey,
  352. }
  353. c, err := NewClient(context.Background(), clientOpt)
  354. if err != nil {
  355. t.Fatal(err)
  356. }
  357. resp, err := c.ImportSshPublicKey(context.Background(), request)
  358. if st, ok := gstatus.FromError(err); !ok {
  359. t.Errorf("got error %v, expected grpc error", err)
  360. } else if c := st.Code(); c != errCode {
  361. t.Errorf("got error code %q, want %q", c, errCode)
  362. }
  363. _ = resp
  364. }
  365. func TestOsLoginServiceUpdateSshPublicKey(t *testing.T) {
  366. var key string = "key106079"
  367. var expirationTimeUsec int64 = 2058878882
  368. var fingerprint string = "fingerprint-1375934236"
  369. var expectedResponse = &commonpb.SshPublicKey{
  370. Key: key,
  371. ExpirationTimeUsec: expirationTimeUsec,
  372. Fingerprint: fingerprint,
  373. }
  374. mockOsLogin.err = nil
  375. mockOsLogin.reqs = nil
  376. mockOsLogin.resps = append(mockOsLogin.resps[:0], expectedResponse)
  377. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  378. var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
  379. var request = &osloginpb.UpdateSshPublicKeyRequest{
  380. Name: formattedName,
  381. SshPublicKey: sshPublicKey,
  382. }
  383. c, err := NewClient(context.Background(), clientOpt)
  384. if err != nil {
  385. t.Fatal(err)
  386. }
  387. resp, err := c.UpdateSshPublicKey(context.Background(), request)
  388. if err != nil {
  389. t.Fatal(err)
  390. }
  391. if want, got := request, mockOsLogin.reqs[0]; !proto.Equal(want, got) {
  392. t.Errorf("wrong request %q, want %q", got, want)
  393. }
  394. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  395. t.Errorf("wrong response %q, want %q)", got, want)
  396. }
  397. }
  398. func TestOsLoginServiceUpdateSshPublicKeyError(t *testing.T) {
  399. errCode := codes.PermissionDenied
  400. mockOsLogin.err = gstatus.Error(errCode, "test error")
  401. var formattedName string = fmt.Sprintf("users/%s/sshPublicKeys/%s", "[USER]", "[FINGERPRINT]")
  402. var sshPublicKey *commonpb.SshPublicKey = &commonpb.SshPublicKey{}
  403. var request = &osloginpb.UpdateSshPublicKeyRequest{
  404. Name: formattedName,
  405. SshPublicKey: sshPublicKey,
  406. }
  407. c, err := NewClient(context.Background(), clientOpt)
  408. if err != nil {
  409. t.Fatal(err)
  410. }
  411. resp, err := c.UpdateSshPublicKey(context.Background(), request)
  412. if st, ok := gstatus.FromError(err); !ok {
  413. t.Errorf("got error %v, expected grpc error", err)
  414. } else if c := st.Code(); c != errCode {
  415. t.Errorf("got error code %q, want %q", c, errCode)
  416. }
  417. _ = resp
  418. }