repository.go 9.5 KB

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