Skip to content

Commit 1b2c02b

Browse files
Merge pull request #1318 from github/fix-validate-no-generate-options-error-messages
Update no generate validation error messages for bbs2gh migrate-repo
2 parents 2b6567d + 4c260fd commit 1b2c02b

File tree

3 files changed

+98
-12
lines changed

3 files changed

+98
-12
lines changed

RELEASENOTES.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1+
- Update validation error messages for `gh bbs2gh migrate-repo` command when generating an archive is not required.

src/OctoshiftCLI.Tests/bbs2gh/Commands/MigrateRepo/MigrateRepoCommandArgsTests.cs

+94-8
Original file line numberDiff line numberDiff line change
@@ -225,11 +225,12 @@ public void It_Throws_When_Kerberos_Is_Set_And_Bbs_Username_Is_Provided()
225225
}
226226

227227
[Fact]
228-
public void Errors_If_BbsServer_Url_Not_Provided_But_Bbs_Password_Is_Provided()
228+
public void Errors_If_Bbs_Password_Is_Provided_With_Archive_Path()
229229
{
230230
// Act
231231
var args = new MigrateRepoCommandArgs
232232
{
233+
BbsServerUrl = BBS_SERVER_URL,
233234
ArchivePath = ARCHIVE_PATH,
234235
GithubOrg = GITHUB_ORG,
235236
GithubRepo = GITHUB_REPO,
@@ -240,15 +241,36 @@ public void Errors_If_BbsServer_Url_Not_Provided_But_Bbs_Password_Is_Provided()
240241
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
241242
.Should()
242243
.ThrowExactly<OctoshiftCliException>()
243-
.WithMessage("*--bbs-username*--bbs-password*--bbs-server-url*");
244+
.WithMessage("*--bbs-username*--bbs-password*--archive-path*");
245+
}
246+
247+
[Fact]
248+
public void Errors_If_Bbs_Password_Is_Provided_With_Archive_Url()
249+
{
250+
// Act
251+
var args = new MigrateRepoCommandArgs
252+
{
253+
BbsServerUrl = BBS_SERVER_URL,
254+
ArchiveUrl = ARCHIVE_URL,
255+
GithubOrg = GITHUB_ORG,
256+
GithubRepo = GITHUB_REPO,
257+
BbsPassword = BBS_USERNAME
258+
};
259+
260+
// Assert
261+
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
262+
.Should()
263+
.ThrowExactly<OctoshiftCliException>()
264+
.WithMessage("*--bbs-username*--bbs-password*--archive-url*");
244265
}
245266

246267
[Fact]
247-
public void Errors_If_BbsServer_Url_Not_Provided_But_No_Ssl_Verify_Is_Provided()
268+
public void Errors_If_No_Ssl_Verify_Is_Provided_With_Archive_Path()
248269
{
249270
// Act
250271
var args = new MigrateRepoCommandArgs
251272
{
273+
BbsServerUrl = BBS_SERVER_URL,
252274
ArchivePath = ARCHIVE_PATH,
253275
GithubOrg = GITHUB_ORG,
254276
GithubRepo = GITHUB_REPO,
@@ -259,15 +281,36 @@ public void Errors_If_BbsServer_Url_Not_Provided_But_No_Ssl_Verify_Is_Provided()
259281
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
260282
.Should()
261283
.ThrowExactly<OctoshiftCliException>()
262-
.WithMessage("*--no-ssl-verify*--bbs-server-url*");
284+
.WithMessage("*--no-ssl-verify*--archive-path*");
263285
}
264286

265287
[Fact]
266-
public void Errors_If_BbsServer_Url_Not_Provided_But_Ssh_User_Is_Provided()
288+
public void Errors_If_No_Ssl_Verify_Is_Provided_With_Archive_Url()
267289
{
268290
// Act
269291
var args = new MigrateRepoCommandArgs
270292
{
293+
BbsServerUrl = BBS_SERVER_URL,
294+
ArchiveUrl = ARCHIVE_URL,
295+
GithubOrg = GITHUB_ORG,
296+
GithubRepo = GITHUB_REPO,
297+
NoSslVerify = true
298+
};
299+
300+
// Assert
301+
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
302+
.Should()
303+
.ThrowExactly<OctoshiftCliException>()
304+
.WithMessage("*--no-ssl-verify*--archive-url*");
305+
}
306+
307+
[Fact]
308+
public void Errors_If_Ssh_User_Is_Provided_With_Archive_Path()
309+
{
310+
// Act
311+
var args = new MigrateRepoCommandArgs
312+
{
313+
BbsServerUrl = BBS_SERVER_URL,
271314
ArchivePath = ARCHIVE_PATH,
272315
GithubOrg = GITHUB_ORG,
273316
GithubRepo = GITHUB_REPO,
@@ -279,15 +322,37 @@ public void Errors_If_BbsServer_Url_Not_Provided_But_Ssh_User_Is_Provided()
279322
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
280323
.Should()
281324
.ThrowExactly<OctoshiftCliException>()
282-
.WithMessage("*SSH*SMB*--bbs-server-url*");
325+
.WithMessage("*SSH*SMB*--archive-path*");
283326
}
284327

285328
[Fact]
286-
public void Errors_If_BbsServer_Url_Not_Provided_But_Smb_User_Is_Provided()
329+
public void Errors_If_Ssh_User_Is_Provided_With_Archive_Url()
287330
{
288331
// Act
289332
var args = new MigrateRepoCommandArgs
290333
{
334+
BbsServerUrl = BBS_SERVER_URL,
335+
ArchiveUrl = ARCHIVE_URL,
336+
GithubOrg = GITHUB_ORG,
337+
GithubRepo = GITHUB_REPO,
338+
SshUser = SSH_USER,
339+
SshPrivateKey = PRIVATE_KEY,
340+
};
341+
342+
// Assert
343+
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
344+
.Should()
345+
.ThrowExactly<OctoshiftCliException>()
346+
.WithMessage("*SSH*SMB*--archive-url*");
347+
}
348+
349+
[Fact]
350+
public void Errors_If_Smb_User_Is_Provided_With_Archive_Path()
351+
{
352+
// Act
353+
var args = new MigrateRepoCommandArgs
354+
{
355+
BbsServerUrl = BBS_SERVER_URL,
291356
ArchivePath = ARCHIVE_PATH,
292357
GithubOrg = GITHUB_ORG,
293358
GithubRepo = GITHUB_REPO,
@@ -299,7 +364,28 @@ public void Errors_If_BbsServer_Url_Not_Provided_But_Smb_User_Is_Provided()
299364
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
300365
.Should()
301366
.ThrowExactly<OctoshiftCliException>()
302-
.WithMessage("*SSH*SMB*--bbs-server-url*");
367+
.WithMessage("*SSH*SMB*--archive-path*");
368+
}
369+
370+
[Fact]
371+
public void Errors_If_Smb_User_Is_Provided_With_Archive_Url()
372+
{
373+
// Act
374+
var args = new MigrateRepoCommandArgs
375+
{
376+
BbsServerUrl = BBS_SERVER_URL,
377+
ArchiveUrl = ARCHIVE_URL,
378+
GithubOrg = GITHUB_ORG,
379+
GithubRepo = GITHUB_REPO,
380+
SmbUser = SMB_USER,
381+
SmbPassword = SMB_PASSWORD,
382+
};
383+
384+
// Assert
385+
args.Invoking(x => x.Validate(_mockOctoLogger.Object))
386+
.Should()
387+
.ThrowExactly<OctoshiftCliException>()
388+
.WithMessage("*SSH*SMB*--archive-url*");
303389
}
304390

305391
[Fact]

src/bbs2gh/Commands/MigrateRepo/MigrateRepoCommandArgs.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,17 @@ private void ValidateNoGenerateOptions()
9595
{
9696
if (BbsUsername.HasValue() || BbsPassword.HasValue())
9797
{
98-
throw new OctoshiftCliException("--bbs-username and --bbs-password can only be provided with --bbs-server-url.");
98+
throw new OctoshiftCliException("--bbs-username and --bbs-password cannot be provided with --archive-path or --archive-url.");
9999
}
100100

101101
if (NoSslVerify)
102102
{
103-
throw new OctoshiftCliException("--no-ssl-verify can only be provided with --bbs-server-url.");
103+
throw new OctoshiftCliException("--no-ssl-verify cannot be provided with --archive-path or --archive-url.");
104104
}
105105

106106
if (new[] { SshUser, SshPrivateKey, ArchiveDownloadHost, SmbUser, SmbPassword, SmbDomain }.Any(obj => obj.HasValue()))
107107
{
108-
throw new OctoshiftCliException("SSH or SMB download options can only be provided with --bbs-server-url.");
108+
throw new OctoshiftCliException("SSH or SMB download options cannot be provided with --archive-path or --archive-url.");
109109
}
110110
}
111111

0 commit comments

Comments
 (0)