repository.go 13 KB

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