repository.go 8.2 KB

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