repository.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package test
  2. import (
  3. "github.com/porter-dev/porter/internal/repository"
  4. )
  5. type TestRepository struct {
  6. user repository.UserRepository
  7. session repository.SessionRepository
  8. project repository.ProjectRepository
  9. cluster repository.ClusterRepository
  10. helmRepo repository.HelmRepoRepository
  11. registry repository.RegistryRepository
  12. gitRepo repository.GitRepoRepository
  13. gitActionConfig repository.GitActionConfigRepository
  14. invite repository.InviteRepository
  15. release repository.ReleaseRepository
  16. authCode repository.AuthCodeRepository
  17. dnsRecord repository.DNSRecordRepository
  18. pwResetToken repository.PWResetTokenRepository
  19. infra repository.InfraRepository
  20. kubeIntegration repository.KubeIntegrationRepository
  21. basicIntegration repository.BasicIntegrationRepository
  22. oidcIntegration repository.OIDCIntegrationRepository
  23. oauthIntegration repository.OAuthIntegrationRepository
  24. gcpIntegration repository.GCPIntegrationRepository
  25. awsIntegration repository.AWSIntegrationRepository
  26. githubAppInstallation repository.GithubAppInstallationRepository
  27. githubAppOAuthIntegration repository.GithubAppOAuthIntegrationRepository
  28. slackIntegration repository.SlackIntegrationRepository
  29. notificationConfig repository.NotificationConfigRepository
  30. buildEvent repository.BuildEventRepository
  31. kubeEvent repository.KubeEventRepository
  32. projectUsage repository.ProjectUsageRepository
  33. onboarding repository.ProjectOnboardingRepository
  34. ceToken repository.CredentialsExchangeTokenRepository
  35. }
  36. func (t *TestRepository) User() repository.UserRepository {
  37. return t.user
  38. }
  39. func (t *TestRepository) Session() repository.SessionRepository {
  40. return t.session
  41. }
  42. func (t *TestRepository) Project() repository.ProjectRepository {
  43. return t.project
  44. }
  45. func (t *TestRepository) Cluster() repository.ClusterRepository {
  46. return t.cluster
  47. }
  48. func (t *TestRepository) HelmRepo() repository.HelmRepoRepository {
  49. return t.helmRepo
  50. }
  51. func (t *TestRepository) Registry() repository.RegistryRepository {
  52. return t.registry
  53. }
  54. func (t *TestRepository) GitRepo() repository.GitRepoRepository {
  55. return t.gitRepo
  56. }
  57. func (t *TestRepository) GitActionConfig() repository.GitActionConfigRepository {
  58. return t.gitActionConfig
  59. }
  60. func (t *TestRepository) Invite() repository.InviteRepository {
  61. return t.invite
  62. }
  63. func (t *TestRepository) Release() repository.ReleaseRepository {
  64. return t.release
  65. }
  66. func (t *TestRepository) AuthCode() repository.AuthCodeRepository {
  67. return t.authCode
  68. }
  69. func (t *TestRepository) DNSRecord() repository.DNSRecordRepository {
  70. return t.dnsRecord
  71. }
  72. func (t *TestRepository) PWResetToken() repository.PWResetTokenRepository {
  73. return t.pwResetToken
  74. }
  75. func (t *TestRepository) Infra() repository.InfraRepository {
  76. return t.infra
  77. }
  78. func (t *TestRepository) KubeIntegration() repository.KubeIntegrationRepository {
  79. return t.kubeIntegration
  80. }
  81. func (t *TestRepository) BasicIntegration() repository.BasicIntegrationRepository {
  82. return t.basicIntegration
  83. }
  84. func (t *TestRepository) OIDCIntegration() repository.OIDCIntegrationRepository {
  85. return t.oidcIntegration
  86. }
  87. func (t *TestRepository) OAuthIntegration() repository.OAuthIntegrationRepository {
  88. return t.oauthIntegration
  89. }
  90. func (t *TestRepository) GCPIntegration() repository.GCPIntegrationRepository {
  91. return t.gcpIntegration
  92. }
  93. func (t *TestRepository) AWSIntegration() repository.AWSIntegrationRepository {
  94. return t.awsIntegration
  95. }
  96. func (t *TestRepository) GithubAppInstallation() repository.GithubAppInstallationRepository {
  97. return t.githubAppInstallation
  98. }
  99. func (t *TestRepository) GithubAppOAuthIntegration() repository.GithubAppOAuthIntegrationRepository {
  100. return t.githubAppOAuthIntegration
  101. }
  102. func (t *TestRepository) SlackIntegration() repository.SlackIntegrationRepository {
  103. return t.slackIntegration
  104. }
  105. func (t *TestRepository) NotificationConfig() repository.NotificationConfigRepository {
  106. return t.notificationConfig
  107. }
  108. func (t *TestRepository) BuildEvent() repository.BuildEventRepository {
  109. return t.buildEvent
  110. }
  111. func (t *TestRepository) KubeEvent() repository.KubeEventRepository {
  112. return t.kubeEvent
  113. }
  114. func (t *TestRepository) ProjectUsage() repository.ProjectUsageRepository {
  115. return t.projectUsage
  116. }
  117. func (t *TestRepository) Onboarding() repository.ProjectOnboardingRepository {
  118. return t.onboarding
  119. }
  120. func (t *TestRepository) CredentialsExchangeToken() repository.CredentialsExchangeTokenRepository {
  121. return t.ceToken
  122. }
  123. // NewRepository returns a Repository which persists users in memory
  124. // and accepts a parameter that can trigger read/write errors
  125. func NewRepository(canQuery bool, failingMethods ...string) repository.Repository {
  126. return &TestRepository{
  127. user: NewUserRepository(canQuery, failingMethods...),
  128. session: NewSessionRepository(canQuery, failingMethods...),
  129. project: NewProjectRepository(canQuery, failingMethods...),
  130. cluster: NewClusterRepository(canQuery),
  131. helmRepo: NewHelmRepoRepository(canQuery),
  132. registry: NewRegistryRepository(canQuery),
  133. gitRepo: NewGitRepoRepository(canQuery),
  134. gitActionConfig: NewGitActionConfigRepository(canQuery),
  135. invite: NewInviteRepository(canQuery),
  136. release: NewReleaseRepository(canQuery),
  137. authCode: NewAuthCodeRepository(canQuery),
  138. dnsRecord: NewDNSRecordRepository(canQuery),
  139. pwResetToken: NewPWResetTokenRepository(canQuery),
  140. infra: NewInfraRepository(canQuery),
  141. kubeIntegration: NewKubeIntegrationRepository(canQuery),
  142. basicIntegration: NewBasicIntegrationRepository(canQuery),
  143. oidcIntegration: NewOIDCIntegrationRepository(canQuery),
  144. oauthIntegration: NewOAuthIntegrationRepository(canQuery),
  145. gcpIntegration: NewGCPIntegrationRepository(canQuery),
  146. awsIntegration: NewAWSIntegrationRepository(canQuery),
  147. githubAppInstallation: NewGithubAppInstallationRepository(canQuery),
  148. githubAppOAuthIntegration: NewGithubAppOAuthIntegrationRepository(canQuery),
  149. slackIntegration: NewSlackIntegrationRepository(canQuery),
  150. notificationConfig: NewNotificationConfigRepository(canQuery),
  151. buildEvent: NewBuildEventRepository(canQuery),
  152. kubeEvent: NewKubeEventRepository(canQuery),
  153. projectUsage: NewProjectUsageRepository(canQuery),
  154. onboarding: NewProjectOnboardingRepository(canQuery),
  155. ceToken: NewCredentialsExchangeTokenRepository(canQuery),
  156. }
  157. }