repository.go 13 KB

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