repository.go 11 KB

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