public async System.Threading.Tasks.Task Should_move_stale_InProgress_requirements_back_to_approved()
    {
        var newStaleIssue = Requirements.NewFeature("InProgress Stale", state: RequirementStates.InProgress);

        newStaleIssue.Assignee = RepositoryOwner;

        var staleInProgressCard = await GitHubClient.Issue.Create(RepositoryOwner, RepositoryName, newStaleIssue);
        var reviewCard = await GitHubClient.Issue.Create(RepositoryOwner, RepositoryName, Requirements.NewFeature("Review", state: RequirementStates.Review));

        var chore = new MoveStaleInProgressRequirementsToApproved(GitHubClient, Repository, TimeSpan.FromDays(-2)); // -2 in order to make it in the future
        await chore.Perform();

        staleInProgressCard = await GitHubClient.Issue.Get(RepositoryOwner, RepositoryName, staleInProgressCard.Number);

        reviewCard = await GitHubClient.Issue.Get(RepositoryOwner, RepositoryName, reviewCard.Number);

        Assert.True(staleInProgressCard.IsInState(RequirementStates.Approved), "Stale card should be moved to approved");
        Assert.False(staleInProgressCard.IsInState(RequirementStates.InProgress), "Stale card should be moved to approved");
        Assert.True(reviewCard.IsInState(RequirementStates.Review), "Card not inprogress should be ontouched");

        Assert.AreEqual(1, staleInProgressCard.Comments, "The bot should comment on the issue");

        var comments = await GitHubClient.Issue.Comment.GetAllForIssue(RepositoryOwner, RepositoryName, staleInProgressCard.Number);

        var comment = comments.Single().Body;

        Assert.True(comment.Contains("@" + RepositoryOwner), "Comment doesn't ping the task lead: " + comment);
    }
    public async System.Threading.Tasks.Task Should_leave_non_stale_items_untouched()
    {
        var nonStaleInProgressCard = await GitHubClient.Issue.Create(RepositoryOwner, RepositoryName, Requirements.NewFeature("InProgress", state: RequirementStates.InProgress));

        var chore = new MoveStaleInProgressRequirementsToApproved(GitHubClient, Repository, TimeSpan.FromDays(7));
        await chore.Perform();

        nonStaleInProgressCard = await GitHubClient.Issue.Get(RepositoryOwner, RepositoryName, nonStaleInProgressCard.Number);

        Assert.True(nonStaleInProgressCard.IsInState(RequirementStates.InProgress), "Non stale card should be untouched");
        Assert.AreEqual(0, nonStaleInProgressCard.Comments);
    }