2020import io .airbyte .commons .json .Jsons ;
2121import io .airbyte .commons .string .Strings ;
2222import io .airbyte .commons .version .AirbyteVersion ;
23+ import io .airbyte .config .ActorCatalog ;
2324import io .airbyte .config .ConfigSchema ;
2425import io .airbyte .config .DestinationConnection ;
2526import io .airbyte .config .Notification ;
2627import io .airbyte .config .Notification .NotificationType ;
2728import io .airbyte .config .SlackNotificationConfiguration ;
2829import io .airbyte .config .SourceConnection ;
30+ import io .airbyte .config .StandardDestinationDefinition ;
2931import io .airbyte .config .StandardSourceDefinition ;
3032import io .airbyte .config .StandardSourceDefinition .SourceType ;
33+ import io .airbyte .config .StandardSync ;
3134import io .airbyte .config .StandardWorkspace ;
3235import io .airbyte .config .init .YamlSeedConfigPersistence ;
3336import io .airbyte .config .persistence .ConfigPersistence ;
4144import io .airbyte .db .factory .DSLContextFactory ;
4245import io .airbyte .db .factory .DataSourceFactory ;
4346import io .airbyte .db .instance .test .TestDatabaseProviders ;
47+ import io .airbyte .protocol .models .ConfiguredAirbyteCatalog ;
4448import io .airbyte .protocol .models .ConnectorSpecification ;
4549import io .airbyte .scheduler .persistence .DefaultJobPersistence ;
4650import io .airbyte .scheduler .persistence .JobPersistence ;
5256import java .nio .file .Files ;
5357import java .nio .file .Path ;
5458import java .util .Collections ;
59+ import java .util .List ;
5560import java .util .Map ;
5661import java .util .Optional ;
5762import java .util .Set ;
@@ -193,7 +198,7 @@ void testFullExportImportRoundTrip() throws Exception {
193198 .withSendOnFailure (true )
194199 .withSendOnSuccess (true )
195200 .withSlackConfiguration (new SlackNotificationConfiguration ().withWebhook ("webhook-url" ));
196- final StandardWorkspace standardWorkspace = new StandardWorkspace ()
201+ final StandardWorkspace workspace = new StandardWorkspace ()
197202 .withWorkspaceId (UUID .randomUUID ())
198203 .withCustomerId (UUID .randomUUID ())
199204 .withName ("test-workspace" )
@@ -208,18 +213,55 @@ void testFullExportImportRoundTrip() throws Exception {
208213 .withNotifications (Collections .singletonList (notification ))
209214 .withFirstCompletedSync (true )
210215 .withFeedbackDone (true );
211- final SourceConnection sourceConnection = new SourceConnection ()
216+ final SourceConnection source = new SourceConnection ()
212217 .withSourceDefinitionId (sourceS3DefinitionId )
213218 .withSourceId (UUID .randomUUID ())
214- .withWorkspaceId (standardWorkspace .getWorkspaceId ())
219+ .withWorkspaceId (workspace .getWorkspaceId ())
215220 .withName ("Test source" )
216221 .withConfiguration (Jsons .deserialize ("{}" ))
217222 .withTombstone (false );
218223
224+ final StandardDestinationDefinition DESTINATION_S3 = new StandardDestinationDefinition ()
225+ .withName ("S3" )
226+ .withDestinationDefinitionId (UUID .fromString ("4816b78f-1489-44c1-9060-4b19d5fa9362" ))
227+ .withDockerRepository ("airbyte/destination-s3" )
228+ .withDockerImageTag ("0.1.12" )
229+ .withSpec (sourceS3Definition .getSpec ())
230+ .withDocumentationUrl ("https://docs.airbyte.io/integrations/destinations/s3" )
231+ .withTombstone (false );
232+
233+ final DestinationConnection destination = new DestinationConnection ()
234+ .withName ("Destination" )
235+ .withDestinationId (UUID .randomUUID ())
236+ .withDestinationDefinitionId (DESTINATION_S3 .getDestinationDefinitionId ())
237+ .withConfiguration (Jsons .deserialize ("{}" ))
238+ .withWorkspaceId (workspace .getWorkspaceId ());
239+
240+ final ActorCatalog actorCatalog = new ActorCatalog ()
241+ .withId (UUID .randomUUID ())
242+ .withCatalog (Jsons .deserialize ("{}" ))
243+ .withCatalogHash ("" );
244+
245+ final StandardSync sync = new StandardSync ()
246+ .withName ("Connection" )
247+ .withConnectionId (UUID .randomUUID ())
248+ .withSourceId (source .getSourceId ())
249+ .withDestinationId (destination .getDestinationId ())
250+ .withCatalog (new ConfiguredAirbyteCatalog ().withStreams (List .of ()))
251+ .withSourceCatalogId (actorCatalog .getId ())
252+ .withManual (true );
253+
219254 // Write source connection and an old source definition.
220- configPersistence .writeConfig (ConfigSchema .STANDARD_WORKSPACE , standardWorkspace .getWorkspaceId ().toString (), standardWorkspace );
221- configPersistence .writeConfig (ConfigSchema .SOURCE_CONNECTION , sourceConnection .getSourceId ().toString (), sourceConnection );
255+ configPersistence .writeConfig (ConfigSchema .STANDARD_WORKSPACE , workspace .getWorkspaceId ().toString (), workspace );
222256 configPersistence .writeConfig (ConfigSchema .STANDARD_SOURCE_DEFINITION , sourceS3DefinitionId .toString (), sourceS3Definition );
257+ configPersistence .writeConfig (ConfigSchema .SOURCE_CONNECTION , source .getSourceId ().toString (), source );
258+
259+ configPersistence .writeConfig (ConfigSchema .ACTOR_CATALOG , actorCatalog .getId ().toString (), actorCatalog );
260+ configPersistence .writeConfig (ConfigSchema .STANDARD_DESTINATION_DEFINITION , DESTINATION_S3 .getDestinationDefinitionId ().toString (),
261+ DESTINATION_S3 );
262+ configPersistence .writeConfig (ConfigSchema .DESTINATION_CONNECTION , destination .getDestinationId ().toString (), destination );
263+
264+ configPersistence .writeConfig (ConfigSchema .STANDARD_SYNC , sync .getConnectionId ().toString (), sync );
223265
224266 // Export, wipe, and import the configs.
225267 archive = archiveHandler .exportData ();
0 commit comments