@@ -1510,6 +1510,175 @@ await _handler.Invoking(async x => await x.Handle(new MigrateRepoCommandArgs
15101510 . WithMessage ( "*AWS S3*--aws-bucket-name*" ) ;
15111511 }
15121512
1513+ [ Fact ]
1514+ public async Task GitArchivePath_With_Both_Azure_Storage_Connection_String_And_Aws_Bucket_Name_Throws ( )
1515+ {
1516+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1517+
1518+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1519+ {
1520+ SourceRepo = SOURCE_REPO ,
1521+ GithubSourceOrg = SOURCE_ORG ,
1522+ GithubTargetOrg = TARGET_ORG ,
1523+ TargetRepo = TARGET_REPO ,
1524+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1525+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1526+ AzureStorageConnectionString = AZURE_CONNECTION_STRING ,
1527+ AwsBucketName = AWS_BUCKET_NAME
1528+ } ) )
1529+ . Should ( )
1530+ . ThrowAsync < OctoshiftCliException > ( ) ;
1531+ }
1532+
1533+ [ Fact ]
1534+ public async Task GitArchivePath_When_Aws_Bucket_Name_Is_Provided_But_No_Aws_Access_Key_Id_Throws ( )
1535+ {
1536+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1537+
1538+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1539+ {
1540+ SourceRepo = SOURCE_REPO ,
1541+ GithubSourceOrg = SOURCE_ORG ,
1542+ GithubTargetOrg = TARGET_ORG ,
1543+ TargetRepo = TARGET_REPO ,
1544+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1545+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1546+ AwsBucketName = AWS_BUCKET_NAME ,
1547+ AwsSecretKey = AWS_SECRET_ACCESS_KEY
1548+ } ) )
1549+ . Should ( )
1550+ . ThrowAsync < OctoshiftCliException > ( )
1551+ . WithMessage ( "*--aws-access-key*" ) ;
1552+ }
1553+
1554+ [ Fact ]
1555+ public async Task GitArchivePath_When_Aws_Bucket_Name_Is_Provided_But_No_Aws_Secret_Key_Throws ( )
1556+ {
1557+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1558+
1559+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1560+ {
1561+ SourceRepo = SOURCE_REPO ,
1562+ GithubSourceOrg = SOURCE_ORG ,
1563+ GithubTargetOrg = TARGET_ORG ,
1564+ TargetRepo = TARGET_REPO ,
1565+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1566+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1567+ AwsBucketName = AWS_BUCKET_NAME ,
1568+ AwsAccessKey = AWS_ACCESS_KEY_ID
1569+ } ) )
1570+ . Should ( )
1571+ . ThrowAsync < OctoshiftCliException > ( )
1572+ . WithMessage ( "*--aws-secret-key*" ) ;
1573+ }
1574+
1575+ [ Fact ]
1576+ public async Task GitArchivePath_When_Aws_Bucket_Name_Is_Provided_But_No_Aws_Region_Throws ( )
1577+ {
1578+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1579+
1580+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1581+ {
1582+ SourceRepo = SOURCE_REPO ,
1583+ GithubSourceOrg = SOURCE_ORG ,
1584+ GithubTargetOrg = TARGET_ORG ,
1585+ TargetRepo = TARGET_REPO ,
1586+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1587+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1588+ AwsBucketName = AWS_BUCKET_NAME ,
1589+ AwsAccessKey = AWS_ACCESS_KEY_ID ,
1590+ AwsSecretKey = AWS_SECRET_ACCESS_KEY ,
1591+ AwsSessionToken = AWS_SESSION_TOKEN
1592+ } ) )
1593+ . Should ( )
1594+ . ThrowAsync < OctoshiftCliException > ( )
1595+ . WithMessage ( "Either --aws-region or AWS_REGION environment variable must be set." ) ;
1596+ }
1597+
1598+ [ Fact ]
1599+ public async Task GitArchivePath_When_Aws_Bucket_Name_Not_Provided_But_Aws_Access_Key_Provided ( )
1600+ {
1601+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1602+
1603+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1604+ {
1605+ SourceRepo = SOURCE_REPO ,
1606+ GithubSourceOrg = SOURCE_ORG ,
1607+ GithubTargetOrg = TARGET_ORG ,
1608+ TargetRepo = TARGET_REPO ,
1609+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1610+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1611+ AzureStorageConnectionString = AZURE_CONNECTION_STRING ,
1612+ AwsAccessKey = AWS_ACCESS_KEY_ID
1613+ } ) )
1614+ . Should ( )
1615+ . ThrowAsync < OctoshiftCliException > ( )
1616+ . WithMessage ( "*AWS S3*--aws-bucket-name*" ) ;
1617+ }
1618+
1619+ [ Fact ]
1620+ public async Task GitArchivePath_When_Aws_Bucket_Name_Not_Provided_But_Aws_Secret_Key_Provided ( )
1621+ {
1622+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1623+
1624+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1625+ {
1626+ SourceRepo = SOURCE_REPO ,
1627+ GithubSourceOrg = SOURCE_ORG ,
1628+ GithubTargetOrg = TARGET_ORG ,
1629+ TargetRepo = TARGET_REPO ,
1630+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1631+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1632+ AzureStorageConnectionString = AZURE_CONNECTION_STRING ,
1633+ AwsSecretKey = AWS_SECRET_ACCESS_KEY
1634+ } ) )
1635+ . Should ( )
1636+ . ThrowAsync < OctoshiftCliException > ( )
1637+ . WithMessage ( "*AWS S3*--aws-bucket-name*" ) ;
1638+ }
1639+
1640+ [ Fact ]
1641+ public async Task GitArchivePath_When_Aws_Bucket_Name_Not_Provided_But_Aws_Session_Token_Provided ( )
1642+ {
1643+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1644+
1645+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1646+ {
1647+ SourceRepo = SOURCE_REPO ,
1648+ GithubSourceOrg = SOURCE_ORG ,
1649+ GithubTargetOrg = TARGET_ORG ,
1650+ TargetRepo = TARGET_REPO ,
1651+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1652+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1653+ AzureStorageConnectionString = AZURE_CONNECTION_STRING ,
1654+ AwsSessionToken = AWS_SECRET_ACCESS_KEY
1655+ } ) )
1656+ . Should ( )
1657+ . ThrowAsync < OctoshiftCliException > ( )
1658+ . WithMessage ( "*AWS S3*--aws-bucket-name*" ) ;
1659+ }
1660+
1661+ [ Fact ]
1662+ public async Task GitArchivePath_When_Aws_Bucket_Name_Not_Provided_But_Aws_Region_Provided ( )
1663+ {
1664+ _mockGhesVersionChecker . Setup ( m => m . AreBlobCredentialsRequired ( GHES_API_URL ) ) . ReturnsAsync ( true ) ;
1665+
1666+ await _handler . Invoking ( async x => await x . Handle ( new MigrateRepoCommandArgs
1667+ {
1668+ SourceRepo = SOURCE_REPO ,
1669+ GithubSourceOrg = SOURCE_ORG ,
1670+ GithubTargetOrg = TARGET_ORG ,
1671+ TargetRepo = TARGET_REPO ,
1672+ GitArchivePath = GIT_ARCHIVE_FILE_PATH ,
1673+ MetadataArchivePath = METADATA_ARCHIVE_FILE_PATH ,
1674+ AzureStorageConnectionString = AZURE_CONNECTION_STRING ,
1675+ AwsRegion = AWS_REGION
1676+ } ) )
1677+ . Should ( )
1678+ . ThrowAsync < OctoshiftCliException > ( )
1679+ . WithMessage ( "*AWS S3*--aws-bucket-name*" ) ;
1680+ }
1681+
15131682 [ Fact ]
15141683 public async Task Keep_Archive_Does_Not_Call_DeleteIfExists ( )
15151684 {
0 commit comments