public void GivenAGitHubUrl_ThenReturnsGitHubProvider( string remoteUrl, bool forceGitHub, bool expectGitHub, string host = null, string user = null, string repository = null) { IGitHubRemoteParameters makerCalledWith = null; IGitHubRemoteWebUrlProvider providerMock = Mock.Of <IGitHubRemoteWebUrlProvider>(); int makerCalledTimes = 0; IGitHubRemoteWebUrlProvider GitHubProviderMaker(IGitHubRemoteParameters gitHubRemoteParameters) { makerCalledWith = gitHubRemoteParameters; makerCalledTimes++; return(providerMock); } IRemoteWebUrlProviderFactory f = new RemoteWebUrlProviderFactory(GitHubProviderMaker); // Act. IGitHubRemoteWebUrlProvider providerReturned = f.CreateUrlProvider(remoteUrl, forceGitHub) as IGitHubRemoteWebUrlProvider; // Verify. if (expectGitHub) { Assert.NotNull(providerReturned); Assert.Same(providerMock, providerReturned); Assert.Equal(1, makerCalledTimes); Assert.Equal(host, makerCalledWith.Server); Assert.Equal(user, makerCalledWith.User); Assert.Equal(repository, makerCalledWith.Repository); } else { Assert.Null(providerReturned); Assert.Equal(0, makerCalledTimes); } }
public GitHubRemoteWebUrlProvider(IGitHubRemoteParameters parameters, ILogger <GitHubRemoteWebUrlProvider> log) { _baseUrl = string.Format(@"https://{0}/{1}/{2}", parameters.Server, parameters.User, parameters.Repository); _log = log; }