C # – Poker Game: The unit tests different poker hands without breaking the principles of DRY

I am currently refactoring an old poker game that violates many SOLID principles.

I was trying to use the TDD approach for refactoring and I found myself in the strict obligation to code a player 's hand every time I was in charge. wrote a unit test for a specific poker hand test.

For example, here are the unit tests for a hand control of a poker pair:

    [Test]
    
    
    
    public void OnePair_IsLowPair_ReturnsTrue ()
{
SuperCard[] testHand =
{
new CardClub (Rank.Ace),
new CardSpade (Rank.Ace),
new CardDiamond (Rank.Five),
new CardHeart (Rank.Jack),
new CardClub (Rank.Three)
};

result bool = PokerHandEvaluator.OnePair (testHand);

Assert.That (result == true);

}

    [Test]
    public void OnePair_IsLowerMiddlePair_ReturnsTrue ()
{
SuperCard[] testHand =
{
new CardClub (Rank.Eight),
new CardSpade (Rank.Ace),
new CardDiamond (Rank.Ace),
new CardHeart (Rank.Jack),
new CardClub (Rank.Three)
};

result bool = PokerHandEvaluator.OnePair (testHand);

Assert.That (result == true);

}

    [Test]
    public void OnePair_IsHigherMiddlePair_ReturnsTrue ()
{
SuperCard[] testHand =
{
new CardClub (Rank.Jack),
new CardSpade (Rank.Queen),
new CardDiamond (Rank.Ace),
new CardHeart (Rank.Ace),
new CardClub (Rank.Three)
};

result bool = PokerHandEvaluator.OnePair (testHand);

Assert.That (result == true);

}

    [Test]
    public void OnePair_IsHighPair_ReturnsTrue ()
{
SuperCard[] testHand =
{
new CardClub (Rank.Jack),
new CardSpade (Rank.Deuce),
new CardDiamond (Rank.Six),
new CardHeart (Rank.Ace),
new CardClub (Rank.Ace)
};

result bool = PokerHandEvaluator.OnePair (testHand);

Assert.That (result == true);

}

Here is what the class diagram looks like (at the current stage of the project):
enter the description of the image here

My question is: how to extract a method (or methods) of testHand initialization.