repository.go 11 KB

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