public async Task CreatePullRequest_ShouldCallCorrectUrlAndMethod()
        {
            var result = _restClient
                         .Capture()
                         .Args <IRestRequest, IRestResponse <PullRequest> >((s, req) => s.ExecuteTaskAsync <PullRequest>(req), MockRepository.GenerateMock <IRestResponse <PullRequest> >());

            var pq = new PullRequest()
            {
                Id          = 0,
                Title       = "master",
                Description = "* qwdwqdqwd created online with Bitbucket",
                Source      = new Source()
                {
                    Branch = new Branch()
                    {
                        Name = "master", IsDefault = false
                    }
                },
                Destination = new Source()
                {
                    Branch = new Branch()
                    {
                        Name = "testbranch", IsDefault = false
                    }
                },
                Reviewers = new List <User>()
                {
                    new User()
                    {
                        UserName = "******", Type = "user"
                    }
                },
                CloseSourceBranch = false,
                State             = PullRequestOptions.OPEN
            };

            await _sut.CreatePullRequest(pq, "reponame", "owner");

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.AreEqual("repositories/owner/reponame/pullrequests", args.Resource);
            Assert.AreEqual(Method.POST, args.Method);

            var body = args.Parameters.First(p => p.Type == ParameterType.RequestBody);

            var expectedJsonBody = Utilities.LoadFile(Paths.GetStandardDataPath("CreatePullRequestRequest.json"));

            Assert.AreEqual(expectedJsonBody, body.Value.ToString());
        }