您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

mock_test.go 46 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542
  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 securitycenter
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. timestamppb "github.com/golang/protobuf/ptypes/timestamp"
  19. securitycenterpb "google.golang.org/genproto/googleapis/cloud/securitycenter/v1"
  20. iampb "google.golang.org/genproto/googleapis/iam/v1"
  21. longrunningpb "google.golang.org/genproto/googleapis/longrunning"
  22. )
  23. import (
  24. "context"
  25. "flag"
  26. "fmt"
  27. "io"
  28. "log"
  29. "net"
  30. "os"
  31. "strings"
  32. "testing"
  33. "github.com/golang/protobuf/proto"
  34. "github.com/golang/protobuf/ptypes"
  35. "google.golang.org/api/option"
  36. status "google.golang.org/genproto/googleapis/rpc/status"
  37. "google.golang.org/grpc"
  38. "google.golang.org/grpc/codes"
  39. "google.golang.org/grpc/metadata"
  40. gstatus "google.golang.org/grpc/status"
  41. )
  42. var _ = io.EOF
  43. var _ = ptypes.MarshalAny
  44. var _ status.Status
  45. type mockSecurityCenterServer struct {
  46. // Embed for forward compatibility.
  47. // Tests will keep working if more methods are added
  48. // in the future.
  49. securitycenterpb.SecurityCenterServer
  50. reqs []proto.Message
  51. // If set, all calls return this error.
  52. err error
  53. // responses to return if err == nil
  54. resps []proto.Message
  55. }
  56. func (s *mockSecurityCenterServer) CreateSource(ctx context.Context, req *securitycenterpb.CreateSourceRequest) (*securitycenterpb.Source, error) {
  57. md, _ := metadata.FromIncomingContext(ctx)
  58. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  59. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  60. }
  61. s.reqs = append(s.reqs, req)
  62. if s.err != nil {
  63. return nil, s.err
  64. }
  65. return s.resps[0].(*securitycenterpb.Source), nil
  66. }
  67. func (s *mockSecurityCenterServer) CreateFinding(ctx context.Context, req *securitycenterpb.CreateFindingRequest) (*securitycenterpb.Finding, error) {
  68. md, _ := metadata.FromIncomingContext(ctx)
  69. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  70. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  71. }
  72. s.reqs = append(s.reqs, req)
  73. if s.err != nil {
  74. return nil, s.err
  75. }
  76. return s.resps[0].(*securitycenterpb.Finding), nil
  77. }
  78. func (s *mockSecurityCenterServer) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
  79. md, _ := metadata.FromIncomingContext(ctx)
  80. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  81. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  82. }
  83. s.reqs = append(s.reqs, req)
  84. if s.err != nil {
  85. return nil, s.err
  86. }
  87. return s.resps[0].(*iampb.Policy), nil
  88. }
  89. func (s *mockSecurityCenterServer) GetOrganizationSettings(ctx context.Context, req *securitycenterpb.GetOrganizationSettingsRequest) (*securitycenterpb.OrganizationSettings, error) {
  90. md, _ := metadata.FromIncomingContext(ctx)
  91. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  92. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  93. }
  94. s.reqs = append(s.reqs, req)
  95. if s.err != nil {
  96. return nil, s.err
  97. }
  98. return s.resps[0].(*securitycenterpb.OrganizationSettings), nil
  99. }
  100. func (s *mockSecurityCenterServer) GetSource(ctx context.Context, req *securitycenterpb.GetSourceRequest) (*securitycenterpb.Source, error) {
  101. md, _ := metadata.FromIncomingContext(ctx)
  102. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  103. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  104. }
  105. s.reqs = append(s.reqs, req)
  106. if s.err != nil {
  107. return nil, s.err
  108. }
  109. return s.resps[0].(*securitycenterpb.Source), nil
  110. }
  111. func (s *mockSecurityCenterServer) GroupAssets(ctx context.Context, req *securitycenterpb.GroupAssetsRequest) (*securitycenterpb.GroupAssetsResponse, error) {
  112. md, _ := metadata.FromIncomingContext(ctx)
  113. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  114. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  115. }
  116. s.reqs = append(s.reqs, req)
  117. if s.err != nil {
  118. return nil, s.err
  119. }
  120. return s.resps[0].(*securitycenterpb.GroupAssetsResponse), nil
  121. }
  122. func (s *mockSecurityCenterServer) GroupFindings(ctx context.Context, req *securitycenterpb.GroupFindingsRequest) (*securitycenterpb.GroupFindingsResponse, error) {
  123. md, _ := metadata.FromIncomingContext(ctx)
  124. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  125. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  126. }
  127. s.reqs = append(s.reqs, req)
  128. if s.err != nil {
  129. return nil, s.err
  130. }
  131. return s.resps[0].(*securitycenterpb.GroupFindingsResponse), nil
  132. }
  133. func (s *mockSecurityCenterServer) ListAssets(ctx context.Context, req *securitycenterpb.ListAssetsRequest) (*securitycenterpb.ListAssetsResponse, error) {
  134. md, _ := metadata.FromIncomingContext(ctx)
  135. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  136. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  137. }
  138. s.reqs = append(s.reqs, req)
  139. if s.err != nil {
  140. return nil, s.err
  141. }
  142. return s.resps[0].(*securitycenterpb.ListAssetsResponse), nil
  143. }
  144. func (s *mockSecurityCenterServer) ListFindings(ctx context.Context, req *securitycenterpb.ListFindingsRequest) (*securitycenterpb.ListFindingsResponse, error) {
  145. md, _ := metadata.FromIncomingContext(ctx)
  146. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  147. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  148. }
  149. s.reqs = append(s.reqs, req)
  150. if s.err != nil {
  151. return nil, s.err
  152. }
  153. return s.resps[0].(*securitycenterpb.ListFindingsResponse), nil
  154. }
  155. func (s *mockSecurityCenterServer) ListSources(ctx context.Context, req *securitycenterpb.ListSourcesRequest) (*securitycenterpb.ListSourcesResponse, error) {
  156. md, _ := metadata.FromIncomingContext(ctx)
  157. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  158. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  159. }
  160. s.reqs = append(s.reqs, req)
  161. if s.err != nil {
  162. return nil, s.err
  163. }
  164. return s.resps[0].(*securitycenterpb.ListSourcesResponse), nil
  165. }
  166. func (s *mockSecurityCenterServer) RunAssetDiscovery(ctx context.Context, req *securitycenterpb.RunAssetDiscoveryRequest) (*longrunningpb.Operation, error) {
  167. md, _ := metadata.FromIncomingContext(ctx)
  168. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  169. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  170. }
  171. s.reqs = append(s.reqs, req)
  172. if s.err != nil {
  173. return nil, s.err
  174. }
  175. return s.resps[0].(*longrunningpb.Operation), nil
  176. }
  177. func (s *mockSecurityCenterServer) SetFindingState(ctx context.Context, req *securitycenterpb.SetFindingStateRequest) (*securitycenterpb.Finding, error) {
  178. md, _ := metadata.FromIncomingContext(ctx)
  179. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  180. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  181. }
  182. s.reqs = append(s.reqs, req)
  183. if s.err != nil {
  184. return nil, s.err
  185. }
  186. return s.resps[0].(*securitycenterpb.Finding), nil
  187. }
  188. func (s *mockSecurityCenterServer) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest) (*iampb.Policy, error) {
  189. md, _ := metadata.FromIncomingContext(ctx)
  190. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  191. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  192. }
  193. s.reqs = append(s.reqs, req)
  194. if s.err != nil {
  195. return nil, s.err
  196. }
  197. return s.resps[0].(*iampb.Policy), nil
  198. }
  199. func (s *mockSecurityCenterServer) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
  200. md, _ := metadata.FromIncomingContext(ctx)
  201. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  202. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  203. }
  204. s.reqs = append(s.reqs, req)
  205. if s.err != nil {
  206. return nil, s.err
  207. }
  208. return s.resps[0].(*iampb.TestIamPermissionsResponse), nil
  209. }
  210. func (s *mockSecurityCenterServer) UpdateFinding(ctx context.Context, req *securitycenterpb.UpdateFindingRequest) (*securitycenterpb.Finding, error) {
  211. md, _ := metadata.FromIncomingContext(ctx)
  212. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  213. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  214. }
  215. s.reqs = append(s.reqs, req)
  216. if s.err != nil {
  217. return nil, s.err
  218. }
  219. return s.resps[0].(*securitycenterpb.Finding), nil
  220. }
  221. func (s *mockSecurityCenterServer) UpdateOrganizationSettings(ctx context.Context, req *securitycenterpb.UpdateOrganizationSettingsRequest) (*securitycenterpb.OrganizationSettings, error) {
  222. md, _ := metadata.FromIncomingContext(ctx)
  223. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  224. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  225. }
  226. s.reqs = append(s.reqs, req)
  227. if s.err != nil {
  228. return nil, s.err
  229. }
  230. return s.resps[0].(*securitycenterpb.OrganizationSettings), nil
  231. }
  232. func (s *mockSecurityCenterServer) UpdateSource(ctx context.Context, req *securitycenterpb.UpdateSourceRequest) (*securitycenterpb.Source, error) {
  233. md, _ := metadata.FromIncomingContext(ctx)
  234. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  235. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  236. }
  237. s.reqs = append(s.reqs, req)
  238. if s.err != nil {
  239. return nil, s.err
  240. }
  241. return s.resps[0].(*securitycenterpb.Source), nil
  242. }
  243. func (s *mockSecurityCenterServer) UpdateSecurityMarks(ctx context.Context, req *securitycenterpb.UpdateSecurityMarksRequest) (*securitycenterpb.SecurityMarks, error) {
  244. md, _ := metadata.FromIncomingContext(ctx)
  245. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  246. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  247. }
  248. s.reqs = append(s.reqs, req)
  249. if s.err != nil {
  250. return nil, s.err
  251. }
  252. return s.resps[0].(*securitycenterpb.SecurityMarks), nil
  253. }
  254. // clientOpt is the option tests should use to connect to the test server.
  255. // It is initialized by TestMain.
  256. var clientOpt option.ClientOption
  257. var (
  258. mockSecurityCenter mockSecurityCenterServer
  259. )
  260. func TestMain(m *testing.M) {
  261. flag.Parse()
  262. serv := grpc.NewServer()
  263. securitycenterpb.RegisterSecurityCenterServer(serv, &mockSecurityCenter)
  264. lis, err := net.Listen("tcp", "localhost:0")
  265. if err != nil {
  266. log.Fatal(err)
  267. }
  268. go serv.Serve(lis)
  269. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  270. if err != nil {
  271. log.Fatal(err)
  272. }
  273. clientOpt = option.WithGRPCConn(conn)
  274. os.Exit(m.Run())
  275. }
  276. func TestSecurityCenterCreateSource(t *testing.T) {
  277. var name string = "name3373707"
  278. var displayName string = "displayName1615086568"
  279. var description string = "description-1724546052"
  280. var expectedResponse = &securitycenterpb.Source{
  281. Name: name,
  282. DisplayName: displayName,
  283. Description: description,
  284. }
  285. mockSecurityCenter.err = nil
  286. mockSecurityCenter.reqs = nil
  287. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  288. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  289. var source *securitycenterpb.Source = &securitycenterpb.Source{}
  290. var request = &securitycenterpb.CreateSourceRequest{
  291. Parent: formattedParent,
  292. Source: source,
  293. }
  294. c, err := NewClient(context.Background(), clientOpt)
  295. if err != nil {
  296. t.Fatal(err)
  297. }
  298. resp, err := c.CreateSource(context.Background(), request)
  299. if err != nil {
  300. t.Fatal(err)
  301. }
  302. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  303. t.Errorf("wrong request %q, want %q", got, want)
  304. }
  305. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  306. t.Errorf("wrong response %q, want %q)", got, want)
  307. }
  308. }
  309. func TestSecurityCenterCreateSourceError(t *testing.T) {
  310. errCode := codes.PermissionDenied
  311. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  312. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  313. var source *securitycenterpb.Source = &securitycenterpb.Source{}
  314. var request = &securitycenterpb.CreateSourceRequest{
  315. Parent: formattedParent,
  316. Source: source,
  317. }
  318. c, err := NewClient(context.Background(), clientOpt)
  319. if err != nil {
  320. t.Fatal(err)
  321. }
  322. resp, err := c.CreateSource(context.Background(), request)
  323. if st, ok := gstatus.FromError(err); !ok {
  324. t.Errorf("got error %v, expected grpc error", err)
  325. } else if c := st.Code(); c != errCode {
  326. t.Errorf("got error code %q, want %q", c, errCode)
  327. }
  328. _ = resp
  329. }
  330. func TestSecurityCenterCreateFinding(t *testing.T) {
  331. var name string = "name3373707"
  332. var parent2 string = "parent21175163357"
  333. var resourceName string = "resourceName979421212"
  334. var category string = "category50511102"
  335. var externalUri string = "externalUri-1385596168"
  336. var expectedResponse = &securitycenterpb.Finding{
  337. Name: name,
  338. Parent: parent2,
  339. ResourceName: resourceName,
  340. Category: category,
  341. ExternalUri: externalUri,
  342. }
  343. mockSecurityCenter.err = nil
  344. mockSecurityCenter.reqs = nil
  345. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  346. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  347. var findingId string = "findingId728776081"
  348. var finding *securitycenterpb.Finding = &securitycenterpb.Finding{}
  349. var request = &securitycenterpb.CreateFindingRequest{
  350. Parent: formattedParent,
  351. FindingId: findingId,
  352. Finding: finding,
  353. }
  354. c, err := NewClient(context.Background(), clientOpt)
  355. if err != nil {
  356. t.Fatal(err)
  357. }
  358. resp, err := c.CreateFinding(context.Background(), request)
  359. if err != nil {
  360. t.Fatal(err)
  361. }
  362. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  363. t.Errorf("wrong request %q, want %q", got, want)
  364. }
  365. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  366. t.Errorf("wrong response %q, want %q)", got, want)
  367. }
  368. }
  369. func TestSecurityCenterCreateFindingError(t *testing.T) {
  370. errCode := codes.PermissionDenied
  371. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  372. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  373. var findingId string = "findingId728776081"
  374. var finding *securitycenterpb.Finding = &securitycenterpb.Finding{}
  375. var request = &securitycenterpb.CreateFindingRequest{
  376. Parent: formattedParent,
  377. FindingId: findingId,
  378. Finding: finding,
  379. }
  380. c, err := NewClient(context.Background(), clientOpt)
  381. if err != nil {
  382. t.Fatal(err)
  383. }
  384. resp, err := c.CreateFinding(context.Background(), request)
  385. if st, ok := gstatus.FromError(err); !ok {
  386. t.Errorf("got error %v, expected grpc error", err)
  387. } else if c := st.Code(); c != errCode {
  388. t.Errorf("got error code %q, want %q", c, errCode)
  389. }
  390. _ = resp
  391. }
  392. func TestSecurityCenterGetIamPolicy(t *testing.T) {
  393. var version int32 = 351608024
  394. var etag []byte = []byte("21")
  395. var expectedResponse = &iampb.Policy{
  396. Version: version,
  397. Etag: etag,
  398. }
  399. mockSecurityCenter.err = nil
  400. mockSecurityCenter.reqs = nil
  401. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  402. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  403. var request = &iampb.GetIamPolicyRequest{
  404. Resource: formattedResource,
  405. }
  406. c, err := NewClient(context.Background(), clientOpt)
  407. if err != nil {
  408. t.Fatal(err)
  409. }
  410. resp, err := c.GetIamPolicy(context.Background(), request)
  411. if err != nil {
  412. t.Fatal(err)
  413. }
  414. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  415. t.Errorf("wrong request %q, want %q", got, want)
  416. }
  417. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  418. t.Errorf("wrong response %q, want %q)", got, want)
  419. }
  420. }
  421. func TestSecurityCenterGetIamPolicyError(t *testing.T) {
  422. errCode := codes.PermissionDenied
  423. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  424. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  425. var request = &iampb.GetIamPolicyRequest{
  426. Resource: formattedResource,
  427. }
  428. c, err := NewClient(context.Background(), clientOpt)
  429. if err != nil {
  430. t.Fatal(err)
  431. }
  432. resp, err := c.GetIamPolicy(context.Background(), request)
  433. if st, ok := gstatus.FromError(err); !ok {
  434. t.Errorf("got error %v, expected grpc error", err)
  435. } else if c := st.Code(); c != errCode {
  436. t.Errorf("got error code %q, want %q", c, errCode)
  437. }
  438. _ = resp
  439. }
  440. func TestSecurityCenterGetOrganizationSettings(t *testing.T) {
  441. var name2 string = "name2-1052831874"
  442. var enableAssetDiscovery bool = false
  443. var expectedResponse = &securitycenterpb.OrganizationSettings{
  444. Name: name2,
  445. EnableAssetDiscovery: enableAssetDiscovery,
  446. }
  447. mockSecurityCenter.err = nil
  448. mockSecurityCenter.reqs = nil
  449. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  450. var formattedName string = fmt.Sprintf("organizations/%s/organizationSettings", "[ORGANIZATION]")
  451. var request = &securitycenterpb.GetOrganizationSettingsRequest{
  452. Name: formattedName,
  453. }
  454. c, err := NewClient(context.Background(), clientOpt)
  455. if err != nil {
  456. t.Fatal(err)
  457. }
  458. resp, err := c.GetOrganizationSettings(context.Background(), request)
  459. if err != nil {
  460. t.Fatal(err)
  461. }
  462. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  463. t.Errorf("wrong request %q, want %q", got, want)
  464. }
  465. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  466. t.Errorf("wrong response %q, want %q)", got, want)
  467. }
  468. }
  469. func TestSecurityCenterGetOrganizationSettingsError(t *testing.T) {
  470. errCode := codes.PermissionDenied
  471. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  472. var formattedName string = fmt.Sprintf("organizations/%s/organizationSettings", "[ORGANIZATION]")
  473. var request = &securitycenterpb.GetOrganizationSettingsRequest{
  474. Name: formattedName,
  475. }
  476. c, err := NewClient(context.Background(), clientOpt)
  477. if err != nil {
  478. t.Fatal(err)
  479. }
  480. resp, err := c.GetOrganizationSettings(context.Background(), request)
  481. if st, ok := gstatus.FromError(err); !ok {
  482. t.Errorf("got error %v, expected grpc error", err)
  483. } else if c := st.Code(); c != errCode {
  484. t.Errorf("got error code %q, want %q", c, errCode)
  485. }
  486. _ = resp
  487. }
  488. func TestSecurityCenterGetSource(t *testing.T) {
  489. var name2 string = "name2-1052831874"
  490. var displayName string = "displayName1615086568"
  491. var description string = "description-1724546052"
  492. var expectedResponse = &securitycenterpb.Source{
  493. Name: name2,
  494. DisplayName: displayName,
  495. Description: description,
  496. }
  497. mockSecurityCenter.err = nil
  498. mockSecurityCenter.reqs = nil
  499. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  500. var formattedName string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  501. var request = &securitycenterpb.GetSourceRequest{
  502. Name: formattedName,
  503. }
  504. c, err := NewClient(context.Background(), clientOpt)
  505. if err != nil {
  506. t.Fatal(err)
  507. }
  508. resp, err := c.GetSource(context.Background(), request)
  509. if err != nil {
  510. t.Fatal(err)
  511. }
  512. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  513. t.Errorf("wrong request %q, want %q", got, want)
  514. }
  515. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  516. t.Errorf("wrong response %q, want %q)", got, want)
  517. }
  518. }
  519. func TestSecurityCenterGetSourceError(t *testing.T) {
  520. errCode := codes.PermissionDenied
  521. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  522. var formattedName string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  523. var request = &securitycenterpb.GetSourceRequest{
  524. Name: formattedName,
  525. }
  526. c, err := NewClient(context.Background(), clientOpt)
  527. if err != nil {
  528. t.Fatal(err)
  529. }
  530. resp, err := c.GetSource(context.Background(), request)
  531. if st, ok := gstatus.FromError(err); !ok {
  532. t.Errorf("got error %v, expected grpc error", err)
  533. } else if c := st.Code(); c != errCode {
  534. t.Errorf("got error code %q, want %q", c, errCode)
  535. }
  536. _ = resp
  537. }
  538. func TestSecurityCenterGroupAssets(t *testing.T) {
  539. var nextPageToken string = ""
  540. var totalSize int32 = 705419236
  541. var groupByResultsElement *securitycenterpb.GroupResult = &securitycenterpb.GroupResult{}
  542. var groupByResults = []*securitycenterpb.GroupResult{groupByResultsElement}
  543. var expectedResponse = &securitycenterpb.GroupAssetsResponse{
  544. NextPageToken: nextPageToken,
  545. TotalSize: totalSize,
  546. GroupByResults: groupByResults,
  547. }
  548. mockSecurityCenter.err = nil
  549. mockSecurityCenter.reqs = nil
  550. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  551. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  552. var groupBy string = "groupBy506361367"
  553. var request = &securitycenterpb.GroupAssetsRequest{
  554. Parent: formattedParent,
  555. GroupBy: groupBy,
  556. }
  557. c, err := NewClient(context.Background(), clientOpt)
  558. if err != nil {
  559. t.Fatal(err)
  560. }
  561. resp, err := c.GroupAssets(context.Background(), request).Next()
  562. if err != nil {
  563. t.Fatal(err)
  564. }
  565. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  566. t.Errorf("wrong request %q, want %q", got, want)
  567. }
  568. want := (interface{})(expectedResponse.GroupByResults[0])
  569. got := (interface{})(resp)
  570. var ok bool
  571. switch want := (want).(type) {
  572. case proto.Message:
  573. ok = proto.Equal(want, got.(proto.Message))
  574. default:
  575. ok = want == got
  576. }
  577. if !ok {
  578. t.Errorf("wrong response %q, want %q)", got, want)
  579. }
  580. }
  581. func TestSecurityCenterGroupAssetsError(t *testing.T) {
  582. errCode := codes.PermissionDenied
  583. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  584. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  585. var groupBy string = "groupBy506361367"
  586. var request = &securitycenterpb.GroupAssetsRequest{
  587. Parent: formattedParent,
  588. GroupBy: groupBy,
  589. }
  590. c, err := NewClient(context.Background(), clientOpt)
  591. if err != nil {
  592. t.Fatal(err)
  593. }
  594. resp, err := c.GroupAssets(context.Background(), request).Next()
  595. if st, ok := gstatus.FromError(err); !ok {
  596. t.Errorf("got error %v, expected grpc error", err)
  597. } else if c := st.Code(); c != errCode {
  598. t.Errorf("got error code %q, want %q", c, errCode)
  599. }
  600. _ = resp
  601. }
  602. func TestSecurityCenterGroupFindings(t *testing.T) {
  603. var nextPageToken string = ""
  604. var totalSize int32 = 705419236
  605. var groupByResultsElement *securitycenterpb.GroupResult = &securitycenterpb.GroupResult{}
  606. var groupByResults = []*securitycenterpb.GroupResult{groupByResultsElement}
  607. var expectedResponse = &securitycenterpb.GroupFindingsResponse{
  608. NextPageToken: nextPageToken,
  609. TotalSize: totalSize,
  610. GroupByResults: groupByResults,
  611. }
  612. mockSecurityCenter.err = nil
  613. mockSecurityCenter.reqs = nil
  614. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  615. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  616. var groupBy string = "groupBy506361367"
  617. var request = &securitycenterpb.GroupFindingsRequest{
  618. Parent: formattedParent,
  619. GroupBy: groupBy,
  620. }
  621. c, err := NewClient(context.Background(), clientOpt)
  622. if err != nil {
  623. t.Fatal(err)
  624. }
  625. resp, err := c.GroupFindings(context.Background(), request).Next()
  626. if err != nil {
  627. t.Fatal(err)
  628. }
  629. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  630. t.Errorf("wrong request %q, want %q", got, want)
  631. }
  632. want := (interface{})(expectedResponse.GroupByResults[0])
  633. got := (interface{})(resp)
  634. var ok bool
  635. switch want := (want).(type) {
  636. case proto.Message:
  637. ok = proto.Equal(want, got.(proto.Message))
  638. default:
  639. ok = want == got
  640. }
  641. if !ok {
  642. t.Errorf("wrong response %q, want %q)", got, want)
  643. }
  644. }
  645. func TestSecurityCenterGroupFindingsError(t *testing.T) {
  646. errCode := codes.PermissionDenied
  647. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  648. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  649. var groupBy string = "groupBy506361367"
  650. var request = &securitycenterpb.GroupFindingsRequest{
  651. Parent: formattedParent,
  652. GroupBy: groupBy,
  653. }
  654. c, err := NewClient(context.Background(), clientOpt)
  655. if err != nil {
  656. t.Fatal(err)
  657. }
  658. resp, err := c.GroupFindings(context.Background(), request).Next()
  659. if st, ok := gstatus.FromError(err); !ok {
  660. t.Errorf("got error %v, expected grpc error", err)
  661. } else if c := st.Code(); c != errCode {
  662. t.Errorf("got error code %q, want %q", c, errCode)
  663. }
  664. _ = resp
  665. }
  666. func TestSecurityCenterListAssets(t *testing.T) {
  667. var nextPageToken string = ""
  668. var totalSize int32 = 705419236
  669. var listAssetsResultsElement *securitycenterpb.ListAssetsResponse_ListAssetsResult = &securitycenterpb.ListAssetsResponse_ListAssetsResult{}
  670. var listAssetsResults = []*securitycenterpb.ListAssetsResponse_ListAssetsResult{listAssetsResultsElement}
  671. var expectedResponse = &securitycenterpb.ListAssetsResponse{
  672. NextPageToken: nextPageToken,
  673. TotalSize: totalSize,
  674. ListAssetsResults: listAssetsResults,
  675. }
  676. mockSecurityCenter.err = nil
  677. mockSecurityCenter.reqs = nil
  678. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  679. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  680. var request = &securitycenterpb.ListAssetsRequest{
  681. Parent: formattedParent,
  682. }
  683. c, err := NewClient(context.Background(), clientOpt)
  684. if err != nil {
  685. t.Fatal(err)
  686. }
  687. resp, err := c.ListAssets(context.Background(), request).Next()
  688. if err != nil {
  689. t.Fatal(err)
  690. }
  691. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  692. t.Errorf("wrong request %q, want %q", got, want)
  693. }
  694. want := (interface{})(expectedResponse.ListAssetsResults[0])
  695. got := (interface{})(resp)
  696. var ok bool
  697. switch want := (want).(type) {
  698. case proto.Message:
  699. ok = proto.Equal(want, got.(proto.Message))
  700. default:
  701. ok = want == got
  702. }
  703. if !ok {
  704. t.Errorf("wrong response %q, want %q)", got, want)
  705. }
  706. }
  707. func TestSecurityCenterListAssetsError(t *testing.T) {
  708. errCode := codes.PermissionDenied
  709. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  710. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  711. var request = &securitycenterpb.ListAssetsRequest{
  712. Parent: formattedParent,
  713. }
  714. c, err := NewClient(context.Background(), clientOpt)
  715. if err != nil {
  716. t.Fatal(err)
  717. }
  718. resp, err := c.ListAssets(context.Background(), request).Next()
  719. if st, ok := gstatus.FromError(err); !ok {
  720. t.Errorf("got error %v, expected grpc error", err)
  721. } else if c := st.Code(); c != errCode {
  722. t.Errorf("got error code %q, want %q", c, errCode)
  723. }
  724. _ = resp
  725. }
  726. func TestSecurityCenterListFindings(t *testing.T) {
  727. var nextPageToken string = ""
  728. var totalSize int32 = 705419236
  729. var listFindingsResultsElement *securitycenterpb.ListFindingsResponse_ListFindingsResult = &securitycenterpb.ListFindingsResponse_ListFindingsResult{}
  730. var listFindingsResults = []*securitycenterpb.ListFindingsResponse_ListFindingsResult{listFindingsResultsElement}
  731. var expectedResponse = &securitycenterpb.ListFindingsResponse{
  732. NextPageToken: nextPageToken,
  733. TotalSize: totalSize,
  734. ListFindingsResults: listFindingsResults,
  735. }
  736. mockSecurityCenter.err = nil
  737. mockSecurityCenter.reqs = nil
  738. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  739. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  740. var request = &securitycenterpb.ListFindingsRequest{
  741. Parent: formattedParent,
  742. }
  743. c, err := NewClient(context.Background(), clientOpt)
  744. if err != nil {
  745. t.Fatal(err)
  746. }
  747. resp, err := c.ListFindings(context.Background(), request).Next()
  748. if err != nil {
  749. t.Fatal(err)
  750. }
  751. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  752. t.Errorf("wrong request %q, want %q", got, want)
  753. }
  754. want := (interface{})(expectedResponse.ListFindingsResults[0])
  755. got := (interface{})(resp)
  756. var ok bool
  757. switch want := (want).(type) {
  758. case proto.Message:
  759. ok = proto.Equal(want, got.(proto.Message))
  760. default:
  761. ok = want == got
  762. }
  763. if !ok {
  764. t.Errorf("wrong response %q, want %q)", got, want)
  765. }
  766. }
  767. func TestSecurityCenterListFindingsError(t *testing.T) {
  768. errCode := codes.PermissionDenied
  769. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  770. var formattedParent string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  771. var request = &securitycenterpb.ListFindingsRequest{
  772. Parent: formattedParent,
  773. }
  774. c, err := NewClient(context.Background(), clientOpt)
  775. if err != nil {
  776. t.Fatal(err)
  777. }
  778. resp, err := c.ListFindings(context.Background(), request).Next()
  779. if st, ok := gstatus.FromError(err); !ok {
  780. t.Errorf("got error %v, expected grpc error", err)
  781. } else if c := st.Code(); c != errCode {
  782. t.Errorf("got error code %q, want %q", c, errCode)
  783. }
  784. _ = resp
  785. }
  786. func TestSecurityCenterListSources(t *testing.T) {
  787. var nextPageToken string = ""
  788. var sourcesElement *securitycenterpb.Source = &securitycenterpb.Source{}
  789. var sources = []*securitycenterpb.Source{sourcesElement}
  790. var expectedResponse = &securitycenterpb.ListSourcesResponse{
  791. NextPageToken: nextPageToken,
  792. Sources: sources,
  793. }
  794. mockSecurityCenter.err = nil
  795. mockSecurityCenter.reqs = nil
  796. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  797. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  798. var request = &securitycenterpb.ListSourcesRequest{
  799. Parent: formattedParent,
  800. }
  801. c, err := NewClient(context.Background(), clientOpt)
  802. if err != nil {
  803. t.Fatal(err)
  804. }
  805. resp, err := c.ListSources(context.Background(), request).Next()
  806. if err != nil {
  807. t.Fatal(err)
  808. }
  809. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  810. t.Errorf("wrong request %q, want %q", got, want)
  811. }
  812. want := (interface{})(expectedResponse.Sources[0])
  813. got := (interface{})(resp)
  814. var ok bool
  815. switch want := (want).(type) {
  816. case proto.Message:
  817. ok = proto.Equal(want, got.(proto.Message))
  818. default:
  819. ok = want == got
  820. }
  821. if !ok {
  822. t.Errorf("wrong response %q, want %q)", got, want)
  823. }
  824. }
  825. func TestSecurityCenterListSourcesError(t *testing.T) {
  826. errCode := codes.PermissionDenied
  827. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  828. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  829. var request = &securitycenterpb.ListSourcesRequest{
  830. Parent: formattedParent,
  831. }
  832. c, err := NewClient(context.Background(), clientOpt)
  833. if err != nil {
  834. t.Fatal(err)
  835. }
  836. resp, err := c.ListSources(context.Background(), request).Next()
  837. if st, ok := gstatus.FromError(err); !ok {
  838. t.Errorf("got error %v, expected grpc error", err)
  839. } else if c := st.Code(); c != errCode {
  840. t.Errorf("got error code %q, want %q", c, errCode)
  841. }
  842. _ = resp
  843. }
  844. func TestSecurityCenterRunAssetDiscovery(t *testing.T) {
  845. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  846. mockSecurityCenter.err = nil
  847. mockSecurityCenter.reqs = nil
  848. any, err := ptypes.MarshalAny(expectedResponse)
  849. if err != nil {
  850. t.Fatal(err)
  851. }
  852. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], &longrunningpb.Operation{
  853. Name: "longrunning-test",
  854. Done: true,
  855. Result: &longrunningpb.Operation_Response{Response: any},
  856. })
  857. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  858. var request = &securitycenterpb.RunAssetDiscoveryRequest{
  859. Parent: formattedParent,
  860. }
  861. c, err := NewClient(context.Background(), clientOpt)
  862. if err != nil {
  863. t.Fatal(err)
  864. }
  865. respLRO, err := c.RunAssetDiscovery(context.Background(), request)
  866. if err != nil {
  867. t.Fatal(err)
  868. }
  869. err = respLRO.Wait(context.Background())
  870. if err != nil {
  871. t.Fatal(err)
  872. }
  873. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  874. t.Errorf("wrong request %q, want %q", got, want)
  875. }
  876. }
  877. func TestSecurityCenterRunAssetDiscoveryError(t *testing.T) {
  878. errCode := codes.PermissionDenied
  879. mockSecurityCenter.err = nil
  880. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], &longrunningpb.Operation{
  881. Name: "longrunning-test",
  882. Done: true,
  883. Result: &longrunningpb.Operation_Error{
  884. Error: &status.Status{
  885. Code: int32(errCode),
  886. Message: "test error",
  887. },
  888. },
  889. })
  890. var formattedParent string = fmt.Sprintf("organizations/%s", "[ORGANIZATION]")
  891. var request = &securitycenterpb.RunAssetDiscoveryRequest{
  892. Parent: formattedParent,
  893. }
  894. c, err := NewClient(context.Background(), clientOpt)
  895. if err != nil {
  896. t.Fatal(err)
  897. }
  898. respLRO, err := c.RunAssetDiscovery(context.Background(), request)
  899. if err != nil {
  900. t.Fatal(err)
  901. }
  902. err = respLRO.Wait(context.Background())
  903. if st, ok := gstatus.FromError(err); !ok {
  904. t.Errorf("got error %v, expected grpc error", err)
  905. } else if c := st.Code(); c != errCode {
  906. t.Errorf("got error code %q, want %q", c, errCode)
  907. }
  908. }
  909. func TestSecurityCenterSetFindingState(t *testing.T) {
  910. var name2 string = "name2-1052831874"
  911. var parent string = "parent-995424086"
  912. var resourceName string = "resourceName979421212"
  913. var category string = "category50511102"
  914. var externalUri string = "externalUri-1385596168"
  915. var expectedResponse = &securitycenterpb.Finding{
  916. Name: name2,
  917. Parent: parent,
  918. ResourceName: resourceName,
  919. Category: category,
  920. ExternalUri: externalUri,
  921. }
  922. mockSecurityCenter.err = nil
  923. mockSecurityCenter.reqs = nil
  924. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  925. var formattedName string = fmt.Sprintf("organizations/%s/sources/%s/findings/%s", "[ORGANIZATION]", "[SOURCE]", "[FINDING]")
  926. var state securitycenterpb.Finding_State = securitycenterpb.Finding_STATE_UNSPECIFIED
  927. var startTime *timestamppb.Timestamp = &timestamppb.Timestamp{}
  928. var request = &securitycenterpb.SetFindingStateRequest{
  929. Name: formattedName,
  930. State: state,
  931. StartTime: startTime,
  932. }
  933. c, err := NewClient(context.Background(), clientOpt)
  934. if err != nil {
  935. t.Fatal(err)
  936. }
  937. resp, err := c.SetFindingState(context.Background(), request)
  938. if err != nil {
  939. t.Fatal(err)
  940. }
  941. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  942. t.Errorf("wrong request %q, want %q", got, want)
  943. }
  944. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  945. t.Errorf("wrong response %q, want %q)", got, want)
  946. }
  947. }
  948. func TestSecurityCenterSetFindingStateError(t *testing.T) {
  949. errCode := codes.PermissionDenied
  950. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  951. var formattedName string = fmt.Sprintf("organizations/%s/sources/%s/findings/%s", "[ORGANIZATION]", "[SOURCE]", "[FINDING]")
  952. var state securitycenterpb.Finding_State = securitycenterpb.Finding_STATE_UNSPECIFIED
  953. var startTime *timestamppb.Timestamp = &timestamppb.Timestamp{}
  954. var request = &securitycenterpb.SetFindingStateRequest{
  955. Name: formattedName,
  956. State: state,
  957. StartTime: startTime,
  958. }
  959. c, err := NewClient(context.Background(), clientOpt)
  960. if err != nil {
  961. t.Fatal(err)
  962. }
  963. resp, err := c.SetFindingState(context.Background(), request)
  964. if st, ok := gstatus.FromError(err); !ok {
  965. t.Errorf("got error %v, expected grpc error", err)
  966. } else if c := st.Code(); c != errCode {
  967. t.Errorf("got error code %q, want %q", c, errCode)
  968. }
  969. _ = resp
  970. }
  971. func TestSecurityCenterSetIamPolicy(t *testing.T) {
  972. var version int32 = 351608024
  973. var etag []byte = []byte("21")
  974. var expectedResponse = &iampb.Policy{
  975. Version: version,
  976. Etag: etag,
  977. }
  978. mockSecurityCenter.err = nil
  979. mockSecurityCenter.reqs = nil
  980. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  981. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  982. var policy *iampb.Policy = &iampb.Policy{}
  983. var request = &iampb.SetIamPolicyRequest{
  984. Resource: formattedResource,
  985. Policy: policy,
  986. }
  987. c, err := NewClient(context.Background(), clientOpt)
  988. if err != nil {
  989. t.Fatal(err)
  990. }
  991. resp, err := c.SetIamPolicy(context.Background(), request)
  992. if err != nil {
  993. t.Fatal(err)
  994. }
  995. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  996. t.Errorf("wrong request %q, want %q", got, want)
  997. }
  998. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  999. t.Errorf("wrong response %q, want %q)", got, want)
  1000. }
  1001. }
  1002. func TestSecurityCenterSetIamPolicyError(t *testing.T) {
  1003. errCode := codes.PermissionDenied
  1004. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1005. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  1006. var policy *iampb.Policy = &iampb.Policy{}
  1007. var request = &iampb.SetIamPolicyRequest{
  1008. Resource: formattedResource,
  1009. Policy: policy,
  1010. }
  1011. c, err := NewClient(context.Background(), clientOpt)
  1012. if err != nil {
  1013. t.Fatal(err)
  1014. }
  1015. resp, err := c.SetIamPolicy(context.Background(), request)
  1016. if st, ok := gstatus.FromError(err); !ok {
  1017. t.Errorf("got error %v, expected grpc error", err)
  1018. } else if c := st.Code(); c != errCode {
  1019. t.Errorf("got error code %q, want %q", c, errCode)
  1020. }
  1021. _ = resp
  1022. }
  1023. func TestSecurityCenterTestIamPermissions(t *testing.T) {
  1024. var expectedResponse *iampb.TestIamPermissionsResponse = &iampb.TestIamPermissionsResponse{}
  1025. mockSecurityCenter.err = nil
  1026. mockSecurityCenter.reqs = nil
  1027. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  1028. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  1029. var permissions []string = nil
  1030. var request = &iampb.TestIamPermissionsRequest{
  1031. Resource: formattedResource,
  1032. Permissions: permissions,
  1033. }
  1034. c, err := NewClient(context.Background(), clientOpt)
  1035. if err != nil {
  1036. t.Fatal(err)
  1037. }
  1038. resp, err := c.TestIamPermissions(context.Background(), request)
  1039. if err != nil {
  1040. t.Fatal(err)
  1041. }
  1042. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  1043. t.Errorf("wrong request %q, want %q", got, want)
  1044. }
  1045. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1046. t.Errorf("wrong response %q, want %q)", got, want)
  1047. }
  1048. }
  1049. func TestSecurityCenterTestIamPermissionsError(t *testing.T) {
  1050. errCode := codes.PermissionDenied
  1051. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1052. var formattedResource string = fmt.Sprintf("organizations/%s/sources/%s", "[ORGANIZATION]", "[SOURCE]")
  1053. var permissions []string = nil
  1054. var request = &iampb.TestIamPermissionsRequest{
  1055. Resource: formattedResource,
  1056. Permissions: permissions,
  1057. }
  1058. c, err := NewClient(context.Background(), clientOpt)
  1059. if err != nil {
  1060. t.Fatal(err)
  1061. }
  1062. resp, err := c.TestIamPermissions(context.Background(), request)
  1063. if st, ok := gstatus.FromError(err); !ok {
  1064. t.Errorf("got error %v, expected grpc error", err)
  1065. } else if c := st.Code(); c != errCode {
  1066. t.Errorf("got error code %q, want %q", c, errCode)
  1067. }
  1068. _ = resp
  1069. }
  1070. func TestSecurityCenterUpdateFinding(t *testing.T) {
  1071. var name string = "name3373707"
  1072. var parent string = "parent-995424086"
  1073. var resourceName string = "resourceName979421212"
  1074. var category string = "category50511102"
  1075. var externalUri string = "externalUri-1385596168"
  1076. var expectedResponse = &securitycenterpb.Finding{
  1077. Name: name,
  1078. Parent: parent,
  1079. ResourceName: resourceName,
  1080. Category: category,
  1081. ExternalUri: externalUri,
  1082. }
  1083. mockSecurityCenter.err = nil
  1084. mockSecurityCenter.reqs = nil
  1085. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  1086. var finding *securitycenterpb.Finding = &securitycenterpb.Finding{}
  1087. var request = &securitycenterpb.UpdateFindingRequest{
  1088. Finding: finding,
  1089. }
  1090. c, err := NewClient(context.Background(), clientOpt)
  1091. if err != nil {
  1092. t.Fatal(err)
  1093. }
  1094. resp, err := c.UpdateFinding(context.Background(), request)
  1095. if err != nil {
  1096. t.Fatal(err)
  1097. }
  1098. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  1099. t.Errorf("wrong request %q, want %q", got, want)
  1100. }
  1101. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1102. t.Errorf("wrong response %q, want %q)", got, want)
  1103. }
  1104. }
  1105. func TestSecurityCenterUpdateFindingError(t *testing.T) {
  1106. errCode := codes.PermissionDenied
  1107. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1108. var finding *securitycenterpb.Finding = &securitycenterpb.Finding{}
  1109. var request = &securitycenterpb.UpdateFindingRequest{
  1110. Finding: finding,
  1111. }
  1112. c, err := NewClient(context.Background(), clientOpt)
  1113. if err != nil {
  1114. t.Fatal(err)
  1115. }
  1116. resp, err := c.UpdateFinding(context.Background(), request)
  1117. if st, ok := gstatus.FromError(err); !ok {
  1118. t.Errorf("got error %v, expected grpc error", err)
  1119. } else if c := st.Code(); c != errCode {
  1120. t.Errorf("got error code %q, want %q", c, errCode)
  1121. }
  1122. _ = resp
  1123. }
  1124. func TestSecurityCenterUpdateOrganizationSettings(t *testing.T) {
  1125. var name string = "name3373707"
  1126. var enableAssetDiscovery bool = false
  1127. var expectedResponse = &securitycenterpb.OrganizationSettings{
  1128. Name: name,
  1129. EnableAssetDiscovery: enableAssetDiscovery,
  1130. }
  1131. mockSecurityCenter.err = nil
  1132. mockSecurityCenter.reqs = nil
  1133. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  1134. var organizationSettings *securitycenterpb.OrganizationSettings = &securitycenterpb.OrganizationSettings{}
  1135. var request = &securitycenterpb.UpdateOrganizationSettingsRequest{
  1136. OrganizationSettings: organizationSettings,
  1137. }
  1138. c, err := NewClient(context.Background(), clientOpt)
  1139. if err != nil {
  1140. t.Fatal(err)
  1141. }
  1142. resp, err := c.UpdateOrganizationSettings(context.Background(), request)
  1143. if err != nil {
  1144. t.Fatal(err)
  1145. }
  1146. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  1147. t.Errorf("wrong request %q, want %q", got, want)
  1148. }
  1149. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1150. t.Errorf("wrong response %q, want %q)", got, want)
  1151. }
  1152. }
  1153. func TestSecurityCenterUpdateOrganizationSettingsError(t *testing.T) {
  1154. errCode := codes.PermissionDenied
  1155. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1156. var organizationSettings *securitycenterpb.OrganizationSettings = &securitycenterpb.OrganizationSettings{}
  1157. var request = &securitycenterpb.UpdateOrganizationSettingsRequest{
  1158. OrganizationSettings: organizationSettings,
  1159. }
  1160. c, err := NewClient(context.Background(), clientOpt)
  1161. if err != nil {
  1162. t.Fatal(err)
  1163. }
  1164. resp, err := c.UpdateOrganizationSettings(context.Background(), request)
  1165. if st, ok := gstatus.FromError(err); !ok {
  1166. t.Errorf("got error %v, expected grpc error", err)
  1167. } else if c := st.Code(); c != errCode {
  1168. t.Errorf("got error code %q, want %q", c, errCode)
  1169. }
  1170. _ = resp
  1171. }
  1172. func TestSecurityCenterUpdateSource(t *testing.T) {
  1173. var name string = "name3373707"
  1174. var displayName string = "displayName1615086568"
  1175. var description string = "description-1724546052"
  1176. var expectedResponse = &securitycenterpb.Source{
  1177. Name: name,
  1178. DisplayName: displayName,
  1179. Description: description,
  1180. }
  1181. mockSecurityCenter.err = nil
  1182. mockSecurityCenter.reqs = nil
  1183. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  1184. var source *securitycenterpb.Source = &securitycenterpb.Source{}
  1185. var request = &securitycenterpb.UpdateSourceRequest{
  1186. Source: source,
  1187. }
  1188. c, err := NewClient(context.Background(), clientOpt)
  1189. if err != nil {
  1190. t.Fatal(err)
  1191. }
  1192. resp, err := c.UpdateSource(context.Background(), request)
  1193. if err != nil {
  1194. t.Fatal(err)
  1195. }
  1196. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  1197. t.Errorf("wrong request %q, want %q", got, want)
  1198. }
  1199. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1200. t.Errorf("wrong response %q, want %q)", got, want)
  1201. }
  1202. }
  1203. func TestSecurityCenterUpdateSourceError(t *testing.T) {
  1204. errCode := codes.PermissionDenied
  1205. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1206. var source *securitycenterpb.Source = &securitycenterpb.Source{}
  1207. var request = &securitycenterpb.UpdateSourceRequest{
  1208. Source: source,
  1209. }
  1210. c, err := NewClient(context.Background(), clientOpt)
  1211. if err != nil {
  1212. t.Fatal(err)
  1213. }
  1214. resp, err := c.UpdateSource(context.Background(), request)
  1215. if st, ok := gstatus.FromError(err); !ok {
  1216. t.Errorf("got error %v, expected grpc error", err)
  1217. } else if c := st.Code(); c != errCode {
  1218. t.Errorf("got error code %q, want %q", c, errCode)
  1219. }
  1220. _ = resp
  1221. }
  1222. func TestSecurityCenterUpdateSecurityMarks(t *testing.T) {
  1223. var name string = "name3373707"
  1224. var expectedResponse = &securitycenterpb.SecurityMarks{
  1225. Name: name,
  1226. }
  1227. mockSecurityCenter.err = nil
  1228. mockSecurityCenter.reqs = nil
  1229. mockSecurityCenter.resps = append(mockSecurityCenter.resps[:0], expectedResponse)
  1230. var securityMarks *securitycenterpb.SecurityMarks = &securitycenterpb.SecurityMarks{}
  1231. var request = &securitycenterpb.UpdateSecurityMarksRequest{
  1232. SecurityMarks: securityMarks,
  1233. }
  1234. c, err := NewClient(context.Background(), clientOpt)
  1235. if err != nil {
  1236. t.Fatal(err)
  1237. }
  1238. resp, err := c.UpdateSecurityMarks(context.Background(), request)
  1239. if err != nil {
  1240. t.Fatal(err)
  1241. }
  1242. if want, got := request, mockSecurityCenter.reqs[0]; !proto.Equal(want, got) {
  1243. t.Errorf("wrong request %q, want %q", got, want)
  1244. }
  1245. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  1246. t.Errorf("wrong response %q, want %q)", got, want)
  1247. }
  1248. }
  1249. func TestSecurityCenterUpdateSecurityMarksError(t *testing.T) {
  1250. errCode := codes.PermissionDenied
  1251. mockSecurityCenter.err = gstatus.Error(errCode, "test error")
  1252. var securityMarks *securitycenterpb.SecurityMarks = &securitycenterpb.SecurityMarks{}
  1253. var request = &securitycenterpb.UpdateSecurityMarksRequest{
  1254. SecurityMarks: securityMarks,
  1255. }
  1256. c, err := NewClient(context.Background(), clientOpt)
  1257. if err != nil {
  1258. t.Fatal(err)
  1259. }
  1260. resp, err := c.UpdateSecurityMarks(context.Background(), request)
  1261. if st, ok := gstatus.FromError(err); !ok {
  1262. t.Errorf("got error %v, expected grpc error", err)
  1263. } else if c := st.Code(); c != errCode {
  1264. t.Errorf("got error code %q, want %q", c, errCode)
  1265. }
  1266. _ = resp
  1267. }