repository.go 11 KB

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