public void Test_Detail_Issue_With_Custom_Properties_Deserialize()
        {
            var responseContent = ApiResponse.IssueDetail;

            //Arrange
            var restSharpDeserializer = new NewtonsoftJsonDeserializer();

            var mockResponse = Substitute.For <IRestResponse>();

            mockResponse.Content.Returns(responseContent);
            mockResponse.Headers.Returns(new List <Parameter> {
                new Parameter {
                    Name = "Content-Type", Value = "application/json"
                }
            });

            //Act
            dynamic issue = restSharpDeserializer.Deserialize <Issue>(mockResponse);

            //Assert
            Assert.AreEqual("YTM-1", issue.Id);
            Assert.AreEqual("Nexus People Sync from Active Directory", issue.Summary);
            Assert.AreEqual("YTM", issue.projectShortName);
            Assert.IsInstanceOf <IList>(issue.Subsystem);
            Assert.AreEqual(issue.Subsystem[0], "SSIS");
        }
        public void Test_Detail_Issue_With_Comments_Deserialize()
        {
            var responseContent = ApiResponse.DetailIssueWithComments;

            //Arrange
            var restSharpDeserializer = new NewtonsoftJsonDeserializer();

            var mockResponse = Substitute.For <IRestResponse>();

            mockResponse.Content.Returns(responseContent);
            mockResponse.Headers.Returns(new List <Parameter> {
                new Parameter {
                    Name = "Content-Type", Value = "application/json"
                }
            });

            //Act
            dynamic issue = restSharpDeserializer.Deserialize <Issue>(mockResponse);

            //Assert
            Assert.AreEqual("NAT-7", issue.Id);
            Assert.AreEqual(274, issue.Created.DayOfYear);
            Assert.AreEqual(10, issue.Updated.Month);
            Assert.AreEqual(14, issue.Updated.Day);
        }
示例#3
0
        private RestClient BuildClient(bool useAuth, Uri uri = null)
        {
            var currentTargetUri = uri ?? _credentialManager.CurrentTarget;
            var baseUrl          = currentTargetUri.AbsoluteUri;

            if (null != _credentialManager.CurrentTargetIP)
            {
                baseUrl           = String.Format("{0}://{1}", Uri.UriSchemeHttp, _credentialManager.CurrentTargetIP);
                RequestHostHeader = currentTargetUri.Host;
            }

            var deserializer = new NewtonsoftJsonDeserializer();
            var rv           = new RestClient
            {
                BaseUrl         = baseUrl,
                FollowRedirects = false,
            };

            rv.RemoveHandler(NewtonsoftJsonDeserializer.JsonContentType);
            rv.AddHandler(NewtonsoftJsonDeserializer.JsonContentType, deserializer);

            if (useAuth && _credentialManager.HasToken)
            {
                rv.AddDefaultHeader("AUTHORIZATION", _credentialManager.CurrentToken);
            }

            if (false == _proxyUserEmail.IsNullOrWhiteSpace())
            {
                rv.AddDefaultHeader("PROXY-USER", _proxyUserEmail);
            }

            return(rv);
        }
        public void Test_Project_Deserialize()
        {
            var responseContent = ApiResponse.Project;

            var restSharpDeserializer = new NewtonsoftJsonDeserializer();

            var mockResponse = Substitute.For <IRestResponse>();

            mockResponse.Content.Returns(responseContent);
            mockResponse.Headers.Returns(new List <Parameter> {
                new Parameter {
                    Name = "Content-Type", Value = "application/json"
                }
            });

            Project project = restSharpDeserializer.Deserialize <Project>(mockResponse);

            Assert.AreEqual("NexusAdminTest", project.Name);
        }
        public void Test_List_Issue_With_Custom_Properties_Deserialize()
        {
            var responseContent = ApiResponse.IssueList;

            var restSharpDeserializer = new NewtonsoftJsonDeserializer();

            var mockResponse = Substitute.For <IRestResponse>();

            mockResponse.Content.Returns(responseContent);
            mockResponse.Headers.Returns(new List <Parameter> {
                new Parameter {
                    Name = "Content-Type", Value = "application/json"
                }
            });

            var issues = restSharpDeserializer.Deserialize <MultipleIssueWrapper>(mockResponse).Data;

            dynamic firstIssue = issues.First();

            Assert.AreEqual("YTM-1", firstIssue.Id);
            Assert.AreEqual("YTM", firstIssue.projectShortName);
            Assert.IsInstanceOf <IList>(firstIssue.Subsystem);
            Assert.AreEqual(firstIssue.Subsystem[0], "SSIS");
        }