Hafeez completes 3000 runs in test