repository.go 13 KB

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