repository.go 9.7 KB

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