repository.go 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  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. projectRole repository.ProjectRoleRepository
  10. cluster repository.ClusterRepository
  11. helmRepo repository.HelmRepoRepository
  12. registry repository.RegistryRepository
  13. gitRepo repository.GitRepoRepository
  14. gitActionConfig repository.GitActionConfigRepository
  15. invite repository.InviteRepository
  16. release repository.ReleaseRepository
  17. environment repository.EnvironmentRepository
  18. authCode repository.AuthCodeRepository
  19. dnsRecord repository.DNSRecordRepository
  20. pwResetToken repository.PWResetTokenRepository
  21. infra repository.InfraRepository
  22. kubeIntegration repository.KubeIntegrationRepository
  23. basicIntegration repository.BasicIntegrationRepository
  24. oidcIntegration repository.OIDCIntegrationRepository
  25. oauthIntegration repository.OAuthIntegrationRepository
  26. gcpIntegration repository.GCPIntegrationRepository
  27. awsIntegration repository.AWSIntegrationRepository
  28. azIntegration repository.AzureIntegrationRepository
  29. githubAppInstallation repository.GithubAppInstallationRepository
  30. githubAppOAuthIntegration repository.GithubAppOAuthIntegrationRepository
  31. gitlabIntegration repository.GitlabIntegrationRepository
  32. gitlabAppOAuthIntegration repository.GitlabAppOAuthIntegrationRepository
  33. slackIntegration repository.SlackIntegrationRepository
  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. }
  50. func (t *TestRepository) User() repository.UserRepository {
  51. return t.user
  52. }
  53. func (t *TestRepository) Session() repository.SessionRepository {
  54. return t.session
  55. }
  56. func (t *TestRepository) Project() repository.ProjectRepository {
  57. return t.project
  58. }
  59. func (t *TestRepository) ProjectRole() repository.ProjectRoleRepository {
  60. return t.projectRole
  61. }
  62. func (t *TestRepository) Cluster() repository.ClusterRepository {
  63. return t.cluster
  64. }
  65. func (t *TestRepository) HelmRepo() repository.HelmRepoRepository {
  66. return t.helmRepo
  67. }
  68. func (t *TestRepository) Registry() repository.RegistryRepository {
  69. return t.registry
  70. }
  71. func (t *TestRepository) GitRepo() repository.GitRepoRepository {
  72. return t.gitRepo
  73. }
  74. func (t *TestRepository) GitActionConfig() repository.GitActionConfigRepository {
  75. return t.gitActionConfig
  76. }
  77. func (t *TestRepository) Invite() repository.InviteRepository {
  78. return t.invite
  79. }
  80. func (t *TestRepository) Release() repository.ReleaseRepository {
  81. return t.release
  82. }
  83. func (t *TestRepository) Environment() repository.EnvironmentRepository {
  84. return t.environment
  85. }
  86. func (t *TestRepository) AuthCode() repository.AuthCodeRepository {
  87. return t.authCode
  88. }
  89. func (t *TestRepository) DNSRecord() repository.DNSRecordRepository {
  90. return t.dnsRecord
  91. }
  92. func (t *TestRepository) PWResetToken() repository.PWResetTokenRepository {
  93. return t.pwResetToken
  94. }
  95. func (t *TestRepository) Infra() repository.InfraRepository {
  96. return t.infra
  97. }
  98. func (t *TestRepository) KubeIntegration() repository.KubeIntegrationRepository {
  99. return t.kubeIntegration
  100. }
  101. func (t *TestRepository) BasicIntegration() repository.BasicIntegrationRepository {
  102. return t.basicIntegration
  103. }
  104. func (t *TestRepository) OIDCIntegration() repository.OIDCIntegrationRepository {
  105. return t.oidcIntegration
  106. }
  107. func (t *TestRepository) OAuthIntegration() repository.OAuthIntegrationRepository {
  108. return t.oauthIntegration
  109. }
  110. func (t *TestRepository) GCPIntegration() repository.GCPIntegrationRepository {
  111. return t.gcpIntegration
  112. }
  113. func (t *TestRepository) AWSIntegration() repository.AWSIntegrationRepository {
  114. return t.awsIntegration
  115. }
  116. func (t *TestRepository) AzureIntegration() repository.AzureIntegrationRepository {
  117. return t.azIntegration
  118. }
  119. func (t *TestRepository) GithubAppInstallation() repository.GithubAppInstallationRepository {
  120. return t.githubAppInstallation
  121. }
  122. func (t *TestRepository) GithubAppOAuthIntegration() repository.GithubAppOAuthIntegrationRepository {
  123. return t.githubAppOAuthIntegration
  124. }
  125. func (t *TestRepository) GitlabIntegration() repository.GitlabIntegrationRepository {
  126. return t.gitlabIntegration
  127. }
  128. func (t *TestRepository) GitlabAppOAuthIntegration() repository.GitlabAppOAuthIntegrationRepository {
  129. return t.gitlabAppOAuthIntegration
  130. }
  131. func (t *TestRepository) SlackIntegration() repository.SlackIntegrationRepository {
  132. return t.slackIntegration
  133. }
  134. func (t *TestRepository) NotificationConfig() repository.NotificationConfigRepository {
  135. return t.notificationConfig
  136. }
  137. func (t *TestRepository) JobNotificationConfig() repository.JobNotificationConfigRepository {
  138. return t.jobNotificationConfig
  139. }
  140. func (t *TestRepository) BuildEvent() repository.BuildEventRepository {
  141. return t.buildEvent
  142. }
  143. func (t *TestRepository) KubeEvent() repository.KubeEventRepository {
  144. return t.kubeEvent
  145. }
  146. func (t *TestRepository) ProjectUsage() repository.ProjectUsageRepository {
  147. return t.projectUsage
  148. }
  149. func (t *TestRepository) Onboarding() repository.ProjectOnboardingRepository {
  150. return t.onboarding
  151. }
  152. func (t *TestRepository) CredentialsExchangeToken() repository.CredentialsExchangeTokenRepository {
  153. return t.ceToken
  154. }
  155. func (t *TestRepository) BuildConfig() repository.BuildConfigRepository {
  156. return t.buildConfig
  157. }
  158. func (t *TestRepository) Database() repository.DatabaseRepository {
  159. return t.database
  160. }
  161. func (t *TestRepository) Allowlist() repository.AllowlistRepository {
  162. return t.allowlist
  163. }
  164. func (t *TestRepository) APIToken() repository.APITokenRepository {
  165. return t.apiToken
  166. }
  167. func (t *TestRepository) Policy() repository.PolicyRepository {
  168. return t.policy
  169. }
  170. func (t *TestRepository) Tag() repository.TagRepository {
  171. return t.tag
  172. }
  173. func (t *TestRepository) Stack() repository.StackRepository {
  174. return t.stack
  175. }
  176. func (t *TestRepository) MonitorTestResult() repository.MonitorTestResultRepository {
  177. return t.monitor
  178. }
  179. // NewRepository returns a Repository which persists users in memory
  180. // and accepts a parameter that can trigger read/write errors
  181. func NewRepository(canQuery bool, failingMethods ...string) repository.Repository {
  182. return &TestRepository{
  183. user: NewUserRepository(canQuery, failingMethods...),
  184. session: NewSessionRepository(canQuery, failingMethods...),
  185. project: NewProjectRepository(canQuery, failingMethods...),
  186. projectRole: NewProjectRoleRepository(canQuery),
  187. cluster: NewClusterRepository(canQuery),
  188. helmRepo: NewHelmRepoRepository(canQuery),
  189. registry: NewRegistryRepository(canQuery),
  190. gitRepo: NewGitRepoRepository(canQuery),
  191. gitActionConfig: NewGitActionConfigRepository(canQuery),
  192. invite: NewInviteRepository(canQuery),
  193. release: NewReleaseRepository(canQuery),
  194. environment: NewEnvironmentRepository(),
  195. authCode: NewAuthCodeRepository(canQuery),
  196. dnsRecord: NewDNSRecordRepository(canQuery),
  197. pwResetToken: NewPWResetTokenRepository(canQuery),
  198. infra: NewInfraRepository(canQuery),
  199. kubeIntegration: NewKubeIntegrationRepository(canQuery),
  200. basicIntegration: NewBasicIntegrationRepository(canQuery),
  201. oidcIntegration: NewOIDCIntegrationRepository(canQuery),
  202. oauthIntegration: NewOAuthIntegrationRepository(canQuery),
  203. gcpIntegration: NewGCPIntegrationRepository(canQuery),
  204. awsIntegration: NewAWSIntegrationRepository(canQuery),
  205. azIntegration: NewAzureIntegrationRepository(),
  206. githubAppInstallation: NewGithubAppInstallationRepository(canQuery),
  207. githubAppOAuthIntegration: NewGithubAppOAuthIntegrationRepository(canQuery),
  208. gitlabIntegration: NewGitlabIntegrationRepository(canQuery),
  209. gitlabAppOAuthIntegration: NewGitlabAppOAuthIntegrationRepository(canQuery),
  210. slackIntegration: NewSlackIntegrationRepository(canQuery),
  211. notificationConfig: NewNotificationConfigRepository(canQuery),
  212. jobNotificationConfig: NewJobNotificationConfigRepository(canQuery),
  213. buildEvent: NewBuildEventRepository(canQuery),
  214. kubeEvent: NewKubeEventRepository(canQuery),
  215. projectUsage: NewProjectUsageRepository(canQuery),
  216. onboarding: NewProjectOnboardingRepository(canQuery),
  217. ceToken: NewCredentialsExchangeTokenRepository(canQuery),
  218. buildConfig: NewBuildConfigRepository(canQuery),
  219. database: NewDatabaseRepository(),
  220. allowlist: NewAllowlistRepository(canQuery),
  221. apiToken: NewAPITokenRepository(canQuery),
  222. policy: NewPolicyRepository(canQuery),
  223. tag: NewTagRepository(),
  224. stack: NewStackRepository(),
  225. monitor: NewMonitorTestResultRepository(canQuery),
  226. }
  227. }