repository.go 11 KB

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