repository.go 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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. environment repository.EnvironmentRepository
  17. authCode repository.AuthCodeRepository
  18. dnsRecord repository.DNSRecordRepository
  19. pwResetToken repository.PWResetTokenRepository
  20. infra repository.InfraRepository
  21. kubeIntegration repository.KubeIntegrationRepository
  22. basicIntegration repository.BasicIntegrationRepository
  23. oidcIntegration repository.OIDCIntegrationRepository
  24. oauthIntegration repository.OAuthIntegrationRepository
  25. gcpIntegration repository.GCPIntegrationRepository
  26. awsIntegration repository.AWSIntegrationRepository
  27. githubAppInstallation repository.GithubAppInstallationRepository
  28. githubAppOAuthIntegration repository.GithubAppOAuthIntegrationRepository
  29. slackIntegration repository.SlackIntegrationRepository
  30. notificationConfig repository.NotificationConfigRepository
  31. jobNotificationConfig repository.JobNotificationConfigRepository
  32. buildEvent repository.BuildEventRepository
  33. kubeEvent repository.KubeEventRepository
  34. projectUsage repository.ProjectUsageRepository
  35. onboarding repository.ProjectOnboardingRepository
  36. ceToken repository.CredentialsExchangeTokenRepository
  37. buildConfig repository.BuildConfigRepository
  38. database repository.DatabaseRepository
  39. allowlist repository.AllowlistRepository
  40. }
  41. func (t *TestRepository) User() repository.UserRepository {
  42. return t.user
  43. }
  44. func (t *TestRepository) Session() repository.SessionRepository {
  45. return t.session
  46. }
  47. func (t *TestRepository) Project() repository.ProjectRepository {
  48. return t.project
  49. }
  50. func (t *TestRepository) Cluster() repository.ClusterRepository {
  51. return t.cluster
  52. }
  53. func (t *TestRepository) HelmRepo() repository.HelmRepoRepository {
  54. return t.helmRepo
  55. }
  56. func (t *TestRepository) Registry() repository.RegistryRepository {
  57. return t.registry
  58. }
  59. func (t *TestRepository) GitRepo() repository.GitRepoRepository {
  60. return t.gitRepo
  61. }
  62. func (t *TestRepository) GitActionConfig() repository.GitActionConfigRepository {
  63. return t.gitActionConfig
  64. }
  65. func (t *TestRepository) Invite() repository.InviteRepository {
  66. return t.invite
  67. }
  68. func (t *TestRepository) Release() repository.ReleaseRepository {
  69. return t.release
  70. }
  71. func (t *TestRepository) Environment() repository.EnvironmentRepository {
  72. return t.environment
  73. }
  74. func (t *TestRepository) AuthCode() repository.AuthCodeRepository {
  75. return t.authCode
  76. }
  77. func (t *TestRepository) DNSRecord() repository.DNSRecordRepository {
  78. return t.dnsRecord
  79. }
  80. func (t *TestRepository) PWResetToken() repository.PWResetTokenRepository {
  81. return t.pwResetToken
  82. }
  83. func (t *TestRepository) Infra() repository.InfraRepository {
  84. return t.infra
  85. }
  86. func (t *TestRepository) KubeIntegration() repository.KubeIntegrationRepository {
  87. return t.kubeIntegration
  88. }
  89. func (t *TestRepository) BasicIntegration() repository.BasicIntegrationRepository {
  90. return t.basicIntegration
  91. }
  92. func (t *TestRepository) OIDCIntegration() repository.OIDCIntegrationRepository {
  93. return t.oidcIntegration
  94. }
  95. func (t *TestRepository) OAuthIntegration() repository.OAuthIntegrationRepository {
  96. return t.oauthIntegration
  97. }
  98. func (t *TestRepository) GCPIntegration() repository.GCPIntegrationRepository {
  99. return t.gcpIntegration
  100. }
  101. func (t *TestRepository) AWSIntegration() repository.AWSIntegrationRepository {
  102. return t.awsIntegration
  103. }
  104. func (t *TestRepository) GithubAppInstallation() repository.GithubAppInstallationRepository {
  105. return t.githubAppInstallation
  106. }
  107. func (t *TestRepository) GithubAppOAuthIntegration() repository.GithubAppOAuthIntegrationRepository {
  108. return t.githubAppOAuthIntegration
  109. }
  110. func (t *TestRepository) SlackIntegration() repository.SlackIntegrationRepository {
  111. return t.slackIntegration
  112. }
  113. func (t *TestRepository) NotificationConfig() repository.NotificationConfigRepository {
  114. return t.notificationConfig
  115. }
  116. func (t *TestRepository) JobNotificationConfig() repository.JobNotificationConfigRepository {
  117. return t.jobNotificationConfig
  118. }
  119. func (t *TestRepository) BuildEvent() repository.BuildEventRepository {
  120. return t.buildEvent
  121. }
  122. func (t *TestRepository) KubeEvent() repository.KubeEventRepository {
  123. return t.kubeEvent
  124. }
  125. func (t *TestRepository) ProjectUsage() repository.ProjectUsageRepository {
  126. return t.projectUsage
  127. }
  128. func (t *TestRepository) Onboarding() repository.ProjectOnboardingRepository {
  129. return t.onboarding
  130. }
  131. func (t *TestRepository) CredentialsExchangeToken() repository.CredentialsExchangeTokenRepository {
  132. return t.ceToken
  133. }
  134. func (t *TestRepository) BuildConfig() repository.BuildConfigRepository {
  135. return t.buildConfig
  136. }
  137. func (t *TestRepository) Database() repository.DatabaseRepository {
  138. return t.database
  139. }
  140. func (t *TestRepository) Allowlist() repository.AllowlistRepository {
  141. return t.allowlist
  142. }
  143. // NewRepository returns a Repository which persists users in memory
  144. // and accepts a parameter that can trigger read/write errors
  145. func NewRepository(canQuery bool, failingMethods ...string) repository.Repository {
  146. return &TestRepository{
  147. user: NewUserRepository(canQuery, failingMethods...),
  148. session: NewSessionRepository(canQuery, failingMethods...),
  149. project: NewProjectRepository(canQuery, failingMethods...),
  150. cluster: NewClusterRepository(canQuery),
  151. helmRepo: NewHelmRepoRepository(canQuery),
  152. registry: NewRegistryRepository(canQuery),
  153. gitRepo: NewGitRepoRepository(canQuery),
  154. gitActionConfig: NewGitActionConfigRepository(canQuery),
  155. invite: NewInviteRepository(canQuery),
  156. release: NewReleaseRepository(canQuery),
  157. environment: NewEnvironmentRepository(),
  158. authCode: NewAuthCodeRepository(canQuery),
  159. dnsRecord: NewDNSRecordRepository(canQuery),
  160. pwResetToken: NewPWResetTokenRepository(canQuery),
  161. infra: NewInfraRepository(canQuery),
  162. kubeIntegration: NewKubeIntegrationRepository(canQuery),
  163. basicIntegration: NewBasicIntegrationRepository(canQuery),
  164. oidcIntegration: NewOIDCIntegrationRepository(canQuery),
  165. oauthIntegration: NewOAuthIntegrationRepository(canQuery),
  166. gcpIntegration: NewGCPIntegrationRepository(canQuery),
  167. awsIntegration: NewAWSIntegrationRepository(canQuery),
  168. githubAppInstallation: NewGithubAppInstallationRepository(canQuery),
  169. githubAppOAuthIntegration: NewGithubAppOAuthIntegrationRepository(canQuery),
  170. slackIntegration: NewSlackIntegrationRepository(canQuery),
  171. notificationConfig: NewNotificationConfigRepository(canQuery),
  172. jobNotificationConfig: NewJobNotificationConfigRepository(canQuery),
  173. buildEvent: NewBuildEventRepository(canQuery),
  174. kubeEvent: NewKubeEventRepository(canQuery),
  175. projectUsage: NewProjectUsageRepository(canQuery),
  176. onboarding: NewProjectOnboardingRepository(canQuery),
  177. ceToken: NewCredentialsExchangeTokenRepository(canQuery),
  178. buildConfig: NewBuildConfigRepository(canQuery),
  179. database: NewDatabaseRepository(),
  180. allowlist: NewAllowlistRepository(canQuery),
  181. }
  182. }