35
35
import io .airbyte .config .persistence .ConfigNotFoundException ;
36
36
import io .airbyte .config .persistence .ConfigRepository ;
37
37
import io .airbyte .persistence .job .JobPersistence ;
38
+ import io .airbyte .persistence .job .factory .OAuthConfigSupplier ;
38
39
import io .airbyte .persistence .job .models .IntegrationLauncherConfig ;
39
40
import io .airbyte .persistence .job .models .Job ;
40
41
import io .airbyte .persistence .job .models .JobRunConfig ;
@@ -58,15 +59,21 @@ class GenerateInputActivityTest {
58
59
static private JobPersistence jobPersistence ;
59
60
static private ConfigRepository configRepository ;
60
61
static private GenerateInputActivityImpl generateInputActivity ;
62
+ static private OAuthConfigSupplier oAuthConfigSupplier ;
61
63
static private Job job ;
62
64
63
65
static private final JsonNode SOURCE_CONFIGURATION = Jsons .jsonNode (Map .of ("source_key" , "source_value" ));
66
+ static private final JsonNode SOURCE_CONFIG_WITH_OAUTH = Jsons .jsonNode (Map .of ("source_key" , "source_value" , "oauth" , "oauth_value" ));
64
67
static private final JsonNode DESTINATION_CONFIGURATION = Jsons .jsonNode (Map .of ("destination_key" , "destination_value" ));
68
+ static private final JsonNode DESTINATION_CONFIG_WITH_OAUTH =
69
+ Jsons .jsonNode (Map .of ("destination_key" , "destination_value" , "oauth" , "oauth_value" ));
65
70
static private final State STATE = new State ().withState (Jsons .jsonNode (Map .of ("state_key" , "state_value" )));
66
71
72
+ static private final UUID WORKSPACE_ID = UUID .randomUUID ();
67
73
static private final long JOB_ID = 1 ;
68
74
static private final int ATTEMPT_ID = 1 ;
69
75
static private final UUID SOURCE_ID = UUID .randomUUID ();
76
+ static private final UUID DESTINATION_DEFINITION_ID = UUID .randomUUID ();
70
77
static private final UUID DESTINATION_ID = UUID .randomUUID ();
71
78
static private final UUID CONNECTION_ID = UUID .randomUUID ();
72
79
@@ -75,24 +82,26 @@ void setUp() throws IOException, JsonValidationException, ConfigNotFoundExceptio
75
82
final StateApi stateApi = mock (StateApi .class );
76
83
final FeatureFlags featureFlags = mock (FeatureFlags .class );
77
84
85
+ oAuthConfigSupplier = mock (OAuthConfigSupplier .class );
78
86
attemptApi = mock (AttemptApi .class );
79
87
jobPersistence = mock (JobPersistence .class );
80
88
configRepository = mock (ConfigRepository .class );
81
- generateInputActivity = new GenerateInputActivityImpl (jobPersistence , configRepository , stateApi , attemptApi , featureFlags );
89
+ generateInputActivity = new GenerateInputActivityImpl (jobPersistence , configRepository , stateApi , attemptApi , featureFlags , oAuthConfigSupplier );
82
90
83
91
job = mock (Job .class );
84
92
85
93
when (jobPersistence .getJob (JOB_ID )).thenReturn (job );
86
94
87
- final UUID destinationDefinitionId = UUID .randomUUID ();
88
-
89
95
final DestinationConnection destinationConnection = new DestinationConnection ()
90
96
.withDestinationId (DESTINATION_ID )
91
- .withDestinationDefinitionId (destinationDefinitionId )
97
+ .withWorkspaceId (WORKSPACE_ID )
98
+ .withDestinationDefinitionId (DESTINATION_DEFINITION_ID )
92
99
.withConfiguration (DESTINATION_CONFIGURATION );
93
100
when (configRepository .getDestinationConnection (DESTINATION_ID )).thenReturn (destinationConnection );
94
- when (configRepository .getStandardDestinationDefinition (destinationDefinitionId )).thenReturn (mock (StandardDestinationDefinition .class ));
101
+ when (configRepository .getStandardDestinationDefinition (DESTINATION_DEFINITION_ID )).thenReturn (mock (StandardDestinationDefinition .class ));
95
102
when (configRepository .getSourceDefinitionFromSource (SOURCE_ID )).thenReturn (mock (StandardSourceDefinition .class ));
103
+ when (oAuthConfigSupplier .injectDestinationOAuthParameters (DESTINATION_DEFINITION_ID , WORKSPACE_ID , DESTINATION_CONFIGURATION ))
104
+ .thenReturn (DESTINATION_CONFIG_WITH_OAUTH );
96
105
97
106
final StandardSync standardSync = new StandardSync ()
98
107
.withSourceId (SOURCE_ID )
@@ -109,10 +118,15 @@ void setUp() throws IOException, JsonValidationException, ConfigNotFoundExceptio
109
118
void testGetSyncWorkflowInput () throws JsonValidationException , ConfigNotFoundException , IOException , ApiException {
110
119
final SyncInput syncInput = new SyncInput (ATTEMPT_ID , JOB_ID );
111
120
121
+ final UUID sourceDefinitionId = UUID .randomUUID ();
112
122
final SourceConnection sourceConnection = new SourceConnection ()
113
123
.withSourceId (SOURCE_ID )
124
+ .withSourceDefinitionId (sourceDefinitionId )
125
+ .withWorkspaceId (WORKSPACE_ID )
114
126
.withConfiguration (SOURCE_CONFIGURATION );
115
127
when (configRepository .getSourceConnection (SOURCE_ID )).thenReturn (sourceConnection );
128
+ when (oAuthConfigSupplier .injectSourceOAuthParameters (sourceDefinitionId , WORKSPACE_ID , SOURCE_CONFIGURATION ))
129
+ .thenReturn (SOURCE_CONFIG_WITH_OAUTH );
116
130
117
131
final JobSyncConfig jobSyncConfig = new JobSyncConfig ()
118
132
.withWorkspaceId (UUID .randomUUID ())
@@ -131,8 +145,8 @@ void testGetSyncWorkflowInput() throws JsonValidationException, ConfigNotFoundEx
131
145
.withWorkspaceId (jobSyncConfig .getWorkspaceId ())
132
146
.withSourceId (SOURCE_ID )
133
147
.withDestinationId (DESTINATION_ID )
134
- .withSourceConfiguration (SOURCE_CONFIGURATION )
135
- .withDestinationConfiguration (DESTINATION_CONFIGURATION )
148
+ .withSourceConfiguration (SOURCE_CONFIG_WITH_OAUTH )
149
+ .withDestinationConfiguration (DESTINATION_CONFIG_WITH_OAUTH )
136
150
.withState (STATE )
137
151
.withCatalog (jobSyncConfig .getConfiguredAirbyteCatalog ())
138
152
.withWorkspaceId (jobSyncConfig .getWorkspaceId ());
@@ -161,10 +175,13 @@ void testGetSyncWorkflowInput() throws JsonValidationException, ConfigNotFoundEx
161
175
assertEquals (expectedGeneratedJobInput , generatedJobInput );
162
176
163
177
final AttemptSyncConfig expectedAttemptSyncConfig = new AttemptSyncConfig ()
164
- .withSourceConfiguration (SOURCE_CONFIGURATION )
165
- .withDestinationConfiguration (DESTINATION_CONFIGURATION )
178
+ .withSourceConfiguration (SOURCE_CONFIG_WITH_OAUTH )
179
+ .withDestinationConfiguration (DESTINATION_CONFIG_WITH_OAUTH )
166
180
.withState (STATE );
167
181
182
+ verify (oAuthConfigSupplier ).injectSourceOAuthParameters (sourceDefinitionId , WORKSPACE_ID , SOURCE_CONFIGURATION );
183
+ verify (oAuthConfigSupplier ).injectDestinationOAuthParameters (DESTINATION_DEFINITION_ID , WORKSPACE_ID , DESTINATION_CONFIGURATION );
184
+
168
185
verify (attemptApi ).saveSyncConfig (new SaveAttemptSyncConfigRequestBody ()
169
186
.jobId (JOB_ID )
170
187
.attemptNumber (ATTEMPT_ID )
@@ -192,7 +209,7 @@ void testGetResetSyncWorkflowInput() throws IOException, ApiException {
192
209
.withSourceId (SOURCE_ID )
193
210
.withDestinationId (DESTINATION_ID )
194
211
.withSourceConfiguration (Jsons .emptyObject ())
195
- .withDestinationConfiguration (DESTINATION_CONFIGURATION )
212
+ .withDestinationConfiguration (DESTINATION_CONFIG_WITH_OAUTH )
196
213
.withState (STATE )
197
214
.withCatalog (jobResetConfig .getConfiguredAirbyteCatalog ())
198
215
.withWorkspaceId (jobResetConfig .getWorkspaceId ());
@@ -222,9 +239,11 @@ void testGetResetSyncWorkflowInput() throws IOException, ApiException {
222
239
223
240
final AttemptSyncConfig expectedAttemptSyncConfig = new AttemptSyncConfig ()
224
241
.withSourceConfiguration (Jsons .emptyObject ())
225
- .withDestinationConfiguration (DESTINATION_CONFIGURATION )
242
+ .withDestinationConfiguration (DESTINATION_CONFIG_WITH_OAUTH )
226
243
.withState (STATE );
227
244
245
+ verify (oAuthConfigSupplier ).injectDestinationOAuthParameters (DESTINATION_DEFINITION_ID , WORKSPACE_ID , DESTINATION_CONFIGURATION );
246
+
228
247
verify (attemptApi ).saveSyncConfig (new SaveAttemptSyncConfigRequestBody ()
229
248
.jobId (JOB_ID )
230
249
.attemptNumber (ATTEMPT_ID )
0 commit comments