-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_utils.go
32 lines (26 loc) · 1.08 KB
/
test_utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package secretfetch
import (
"context"
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
)
// mockSecretsManagerClient is a mock implementation of the AWS Secrets Manager client
type mockSecretsManagerClient struct {
getSecretValueFn func(ctx context.Context, params *secretsmanager.GetSecretValueInput, optFns ...func(*secretsmanager.Options)) (*secretsmanager.GetSecretValueOutput, error)
}
func (m *mockSecretsManagerClient) GetSecretValue(ctx context.Context, params *secretsmanager.GetSecretValueInput, optFns ...func(*secretsmanager.Options)) (*secretsmanager.GetSecretValueOutput, error) {
if m.getSecretValueFn != nil {
return m.getSecretValueFn(ctx, params, optFns...)
}
return nil, nil
}
// mockMetricsCollector implements SecurityMetricsCollector for testing
type mockMetricsCollector struct {
metrics []SecretAccessMetric
onSecretAccessFunc func(metric SecretAccessMetric)
}
func (m *mockMetricsCollector) OnSecretAccess(metric SecretAccessMetric) {
if m.onSecretAccessFunc != nil {
m.onSecretAccessFunc(metric)
}
m.metrics = append(m.metrics, metric)
}