示例#1
0
        public void InitializesCorrectly()
        {
            var httpClient = new HttpClient();
            var restClient = new AzureDevOpsRestClient(httpClient, Substitute.For <INuKeeperLogger>(), "PAT");

            var encodedToken = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{string.Empty}:PAT"));

            Assert.IsTrue(httpClient.DefaultRequestHeaders.Accept.Contains(new MediaTypeWithQualityHeaderValue("application/json")));
            Assert.IsTrue(httpClient.DefaultRequestHeaders.Authorization.Equals(new AuthenticationHeaderValue("Basic", encodedToken)));
        }
示例#2
0
 public void ThrowsWithBadJson()
 {
     var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpResponseMessage
     {
         StatusCode = HttpStatusCode.OK,
         Content    = new StringContent(JsonConvert.SerializeObject("<body>Login Page</body>"), Encoding.UTF8, "application/json")
     });
     var fakeHttpClient = new HttpClient(fakeHttpMessageHandler)
     {
         BaseAddress = new Uri("https://fakebaseAddress.com/")
     };
     var restClient = new AzureDevOpsRestClient(fakeHttpClient, Substitute.For <INuKeeperLogger>(), "PAT");
     var exception  = Assert.ThrowsAsync <NuKeeperException>(async() => await restClient.GetGitRepositories("Project"));
 }
示例#3
0
        public void ThrowsWithBadStatusCode()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content    = new StringContent("", Encoding.UTF8, "application/json")
            });
            var fakeHttpClient = new HttpClient(fakeHttpMessageHandler)
            {
                BaseAddress = new Uri("https://fakebaseAddress.com/")
            };
            var restClient = new AzureDevOpsRestClient(fakeHttpClient, Substitute.For <INuKeeperLogger>(), "PAT");
            var exception  = Assert.ThrowsAsync <NuKeeperException>(async() => await restClient.GetGitRepositories("Project"));

            Assert.IsTrue(exception.Message.Contains("Error", StringComparison.InvariantCultureIgnoreCase));
        }
        public void ThrowsWithUnauthorized()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.Unauthorized,
                Content    = new StringContent("", Encoding.UTF8, "application/json")
            });
            var fakeHttpClient = new HttpClient(fakeHttpMessageHandler)
            {
                BaseAddress = new Uri("https://fakebaseAddress.com/")
            };
            var httpClientFactory = Substitute.For <IHttpClientFactory>();

            httpClientFactory.CreateClient().Returns(fakeHttpClient);
            var restClient = new AzureDevOpsRestClient(httpClientFactory, Substitute.For <INuKeeperLogger>(), "PAT", fakeHttpClient.BaseAddress);
            var exception  = Assert.ThrowsAsync <NuKeeperException>(async() => await restClient.GetGitRepositories("Project"));

            Assert.IsTrue(exception.Message.Contains("Unauthorised", StringComparison.InvariantCultureIgnoreCase));
        }
示例#5
0
        public void BuildAzureDevOpsUri(string relativePath, bool previewApi, Uri expectedUri)
        {
            var uri = AzureDevOpsRestClient.BuildAzureDevOpsUri(relativePath, previewApi);

            Assert.AreEqual(expectedUri, uri);
        }