fake_client.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*
  2. Copyright © 2025 ESO Maintainer Team
  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. https://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. */
  13. package bitwarden
  14. import (
  15. "context"
  16. "fmt"
  17. )
  18. // FakeClient is a mock implementation of the Bitwarden client interface.
  19. type FakeClient struct {
  20. getSecretCallArguments []string
  21. getSecretReturnsOnCall map[int]*SecretResponse
  22. getSecretCalledN int
  23. deleteSecretCallArguments [][]string
  24. deleteSecretReturnsOnCall map[int]*SecretsDeleteResponse
  25. deleteSecretCalledN int
  26. createSecretCallArguments []SecretCreateRequest
  27. createSecretReturnsOnCall map[int]*SecretResponse
  28. createSecretCalledN int
  29. updateSecretCallArguments []SecretPutRequest
  30. updateSecretReturnsOnCall map[int]*SecretResponse
  31. updateSecretCalledN int
  32. listSecretsCallArguments []string
  33. listSecretsReturnsOnCall map[int]*SecretIdentifiersResponse
  34. listSecretsCalledN int
  35. }
  36. // GetSecretReturnsOnCallN sets up the mock to return a specific response for GetSecret on the Nth call.
  37. func (c *FakeClient) GetSecretReturnsOnCallN(call int, ret *SecretResponse) {
  38. if c.getSecretReturnsOnCall == nil {
  39. c.getSecretReturnsOnCall = make(map[int]*SecretResponse)
  40. }
  41. c.getSecretReturnsOnCall[call] = ret
  42. }
  43. // GetSecret retrieves a secret from the mock client.
  44. func (c *FakeClient) GetSecret(_ context.Context, id string) (*SecretResponse, error) {
  45. ret, ok := c.getSecretReturnsOnCall[c.getSecretCalledN]
  46. if !ok {
  47. return nil, fmt.Errorf("get secret no canned responses set for call %d", c.getSecretCalledN)
  48. }
  49. c.getSecretCallArguments = append(c.getSecretCallArguments, id)
  50. c.getSecretCalledN++
  51. return ret, nil
  52. }
  53. // DeleteSecretReturnsOnCallN sets up the mock to return a specific response for DeleteSecret on the Nth call.
  54. func (c *FakeClient) DeleteSecretReturnsOnCallN(call int, ret *SecretsDeleteResponse) {
  55. if c.deleteSecretReturnsOnCall == nil {
  56. c.deleteSecretReturnsOnCall = make(map[int]*SecretsDeleteResponse)
  57. }
  58. c.deleteSecretReturnsOnCall[call] = ret
  59. }
  60. // DeleteSecret deletes secrets from the mock client.
  61. func (c *FakeClient) DeleteSecret(_ context.Context, ids []string) (*SecretsDeleteResponse, error) {
  62. ret, ok := c.deleteSecretReturnsOnCall[c.deleteSecretCalledN]
  63. if !ok {
  64. return nil, fmt.Errorf("delete secret no canned responses set for call %d", c.deleteSecretCalledN)
  65. }
  66. c.deleteSecretCalledN++
  67. c.deleteSecretCallArguments = append(c.deleteSecretCallArguments, ids)
  68. return ret, nil
  69. }
  70. // CreateSecretReturnsOnCallN sets up the mock to return a specific response for CreateSecret on the Nth call.
  71. func (c *FakeClient) CreateSecretReturnsOnCallN(call int, ret *SecretResponse) {
  72. if c.createSecretReturnsOnCall == nil {
  73. c.createSecretReturnsOnCall = make(map[int]*SecretResponse)
  74. }
  75. c.createSecretReturnsOnCall[call] = ret
  76. }
  77. // CreateSecret creates a new secret in the mock client.
  78. func (c *FakeClient) CreateSecret(_ context.Context, secret SecretCreateRequest) (*SecretResponse, error) {
  79. ret, ok := c.createSecretReturnsOnCall[c.createSecretCalledN]
  80. if !ok {
  81. return nil, fmt.Errorf("create secret no canned responses set for call %d", c.createSecretCalledN)
  82. }
  83. c.createSecretCalledN++
  84. c.createSecretCallArguments = append(c.createSecretCallArguments, secret)
  85. return ret, nil
  86. }
  87. // UpdateSecretReturnsOnCallN sets up the mock to return a specific response for UpdateSecret on the Nth call.
  88. func (c *FakeClient) UpdateSecretReturnsOnCallN(call int, ret *SecretResponse) {
  89. if c.updateSecretReturnsOnCall == nil {
  90. c.updateSecretReturnsOnCall = make(map[int]*SecretResponse)
  91. }
  92. c.updateSecretReturnsOnCall[call] = ret
  93. }
  94. // UpdateSecret updates an existing secret in the mock client.
  95. func (c *FakeClient) UpdateSecret(_ context.Context, secret SecretPutRequest) (*SecretResponse, error) {
  96. ret, ok := c.updateSecretReturnsOnCall[c.updateSecretCalledN]
  97. if !ok {
  98. return nil, fmt.Errorf("secret update no canned responses set for call %d", c.updateSecretCalledN)
  99. }
  100. c.updateSecretCalledN++
  101. c.updateSecretCallArguments = append(c.updateSecretCallArguments, secret)
  102. return ret, nil
  103. }
  104. // ListSecretReturnsOnCallN sets up the mock to return a specific response for ListSecrets on the Nth call.
  105. func (c *FakeClient) ListSecretReturnsOnCallN(call int, ret *SecretIdentifiersResponse) {
  106. if c.listSecretsReturnsOnCall == nil {
  107. c.listSecretsReturnsOnCall = make(map[int]*SecretIdentifiersResponse)
  108. }
  109. c.listSecretsReturnsOnCall[call] = ret
  110. }
  111. // ListSecrets lists secrets from the mock client.
  112. func (c *FakeClient) ListSecrets(_ context.Context, organizationID string) (*SecretIdentifiersResponse, error) {
  113. ret, ok := c.listSecretsReturnsOnCall[c.listSecretsCalledN]
  114. if !ok {
  115. return nil, fmt.Errorf("secret list no canned responses set for call %d", c.listSecretsCalledN)
  116. }
  117. c.listSecretsCalledN++
  118. c.listSecretsCallArguments = append(c.listSecretsCallArguments, organizationID)
  119. return ret, nil
  120. }