diff --git a/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs b/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs new file mode 100644 index 00000000..707f7556 --- /dev/null +++ b/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs @@ -0,0 +1,36 @@ +using Xunit; + +namespace Octokit.Tests.Exceptions +{ + public class RepositoryExistsExceptionTests + { + public class TheMessageProperty + { + [Fact] + public void WhenOwnerIsNullDoNotMentionInMessage() + { + var exception = new RepositoryExistsException( + null, + "some-repo", + false, + GitHubClient.GitHubDotComUrl, + new ApiValidationException()); + + Assert.Equal("There is already a repository named 'some-repo' for the current account.", exception.Message); + } + + [Fact] + public void WhenOwnerIsNotNullMentionInMessage() + { + var exception = new RepositoryExistsException( + "some-org", + "some-repo", + true, + GitHubClient.GitHubDotComUrl, + new ApiValidationException()); + + Assert.Equal("There is already a repository named 'some-repo' in the organization 'some-org'.", exception.Message); + } + } + } +} diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj index 312e40ad..cde48c61 100644 --- a/Octokit.Tests/Octokit.Tests.csproj +++ b/Octokit.Tests/Octokit.Tests.csproj @@ -98,6 +98,7 @@ + diff --git a/Octokit/Clients/RepositoriesClient.cs b/Octokit/Clients/RepositoriesClient.cs index fc22e459..55670185 100644 --- a/Octokit/Clients/RepositoriesClient.cs +++ b/Octokit/Clients/RepositoriesClient.cs @@ -84,13 +84,11 @@ namespace Octokit errorMessage, StringComparison.OrdinalIgnoreCase)) { - string owner = organizationLogin ?? Connection.Credentials.Login; - var baseAddress = Connection.BaseAddress.Host != GitHubClient.GitHubApiUrl.Host ? Connection.BaseAddress : new Uri("https://github.com/"); throw new RepositoryExistsException( - owner, + organizationLogin, newRepository.Name, organizationLogin != null, baseAddress, e); diff --git a/Octokit/Exceptions/RepositoryExistsException.cs b/Octokit/Exceptions/RepositoryExistsException.cs index f5f61828..adcb698b 100644 --- a/Octokit/Exceptions/RepositoryExistsException.cs +++ b/Octokit/Exceptions/RepositoryExistsException.cs @@ -37,11 +37,10 @@ namespace Octokit ApiValidationException innerException) : base(innerException) { - Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "repositoryName"); Ensure.ArgumentNotNull(baseAddress, "baseAddress"); - Owner = owner; + Owner = owner ?? ""; // TODO: this is a total hack RepositoryName = name; OwnerIsOrganization = ownerIsOrganization; var webBaseAddress = baseAddress.Host != GitHubClient.GitHubApiUrl.Host @@ -49,8 +48,8 @@ namespace Octokit : GitHubClient.GitHubDotComUrl; ExistingRepositoryWebUrl = new Uri(webBaseAddress, new Uri(owner + "/" + name, UriKind.Relative)); string messageFormat = ownerIsOrganization - ? "There is already a repository named '{0}' in the organization '{1}'" - : "There is already a repository named '{0}' for the owner '{1}'."; + ? "There is already a repository named '{0}' in the organization '{1}'." + : "There is already a repository named '{0}' for the current account."; _message = String.Format(CultureInfo.InvariantCulture, messageFormat, name, owner); }