示例#1
0
        public void CloneAuthenticatedClient_WithValidClient_ClonesAuthenticationToken()
        {
            var token = _fixture.Create <string>();

            SetAuthenticationToken(token);

            var host   = "somehost";
            var port   = 1234;
            var scheme = Uri.UriSchemeHttps;
            var path   = "/some/path";

            var builder = new UriBuilder(scheme, host, port, path);

            _rawClient.SetBaseUri(builder.ToString());

            var baseUri = "/a/different/path";

            Assert.That(path, Is.Not.EqualTo(baseUri), "Invalid test data");

            var clone = ClientHelper.CloneAuthenticatedClient(_rawClient, baseUri);

            clone.Headers[AuthenticationHeaders.AuthenticationHeaderNameKey].ShouldBeEquivalentTo(_rawClient.Headers[AuthenticationHeaders.AuthenticationHeaderNameKey]);

            var uri = new Uri(clone.BaseUri);

            uri.Host.ShouldBeEquivalentTo(host, "Original host retained");
            uri.Port.ShouldBeEquivalentTo(port, "Original port retained");
            uri.Scheme.ShouldBeEquivalentTo(scheme, "Original scheme retained");
            uri.PathAndQuery.ShouldBeEquivalentTo(baseUri, "New endpoint");
        }