public void VerifyHashedPassword_WithIdentityV1OrV2StyleHash_ReturnsSuccessRehashNeeded(
        TestUserStub aUser,
        UmbracoPasswordHasher <TestUserStub> sut)
    {
        var options = Options.Create(new PasswordHasherOptions
        {
            CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2,
        });

        var upstreamHasher = new PasswordHasher <TestUserStub>(options);

        const string password = "******";
        var          identityV1Or2StyleHash = upstreamHasher.HashPassword(aUser, password);
        var          result = sut.VerifyHashedPassword(aUser, identityV1Or2StyleHash, password);

        Assert.AreEqual(PasswordVerificationResult.SuccessRehashNeeded, result);
    }
    public void VerifyHashedPassword_WithIncorrectPassword_ReturnsFailed(
        string algorithm,
        string providedPassword,
        string hashedPassword,
        [Frozen] IJsonSerializer jsonSerializer,
        TestUserStub aUser,
        UmbracoPasswordHasher <TestUserStub> sut)
    {
        Mock.Get(jsonSerializer)
        .Setup(x => x.Deserialize <PersistedPasswordSettings>(It.IsAny <string>()))
        .Returns(new PersistedPasswordSettings {
            HashAlgorithm = algorithm
        });

        var result = sut.VerifyHashedPassword(aUser, hashedPassword, providedPassword);

        Assert.AreEqual(PasswordVerificationResult.Failed, result);
    }