repository.go 13 KB

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