repository.go 12 KB

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