repository.go 12 KB

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