repository.go 10 KB

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