diff --git a/test/OAuth/OAuthTest.php b/test/OAuth/OAuthTest.php index e141b6b7..14e1a7be 100644 --- a/test/OAuth/OAuthTest.php +++ b/test/OAuth/OAuthTest.php @@ -14,6 +14,7 @@ namespace PHPMailer\Test\OAuth; use PHPMailer\PHPMailer\OAuth; +use PHPMailer\PHPMailer\OAuthTokenProvider; use PHPMailer\PHPMailer\PHPMailer; use Yoast\PHPUnitPolyfills\TestCases\TestCase; @@ -28,10 +29,11 @@ final class OAuthTest extends TestCase * @covers PHPMailer\PHPMailer\PHPMailer::getOAuth * @covers PHPMailer\PHPMailer\PHPMailer::setOAuth * @covers PHPMailer\PHPMailer\OAuth::__construct + * @covers PHPMailer\PHPMailer\OAuthTokenProvider */ public function testOAuth() { - $PHPMailer = new PHPMailer(); + $PHPMailer = new PHPMailer(true); $reflection = new \ReflectionClass($PHPMailer); $property = $reflection->getProperty('oauth'); $property->setAccessible(true); @@ -48,6 +50,7 @@ final class OAuthTest extends TestCase $oauth = new OAuth($options); self::assertInstanceOf(OAuth::class, $oauth, 'Instantiation of OAuth class failed'); + self::assertInstanceOf(OAuthTokenProvider::class, $oauth, 'Instantiation of OAuth class failed'); $subject = $PHPMailer->setOAuth($oauth); self::assertNull($subject, 'setOAuth() is not a void function'); self::assertInstanceOf( @@ -55,5 +58,16 @@ final class OAuthTest extends TestCase $PHPMailer->getOAuth(), 'Setting Oauth property to an instance of the OAuth class failed' ); + $this->expectException(\TypeError::class); + $PHPMailer->setOAuth(new \stdClass()); + $PHPMailer->setOAuth(new testOAuthProvider()); } } + +class testOAuthProvider implements OAuthTokenProvider +{ + public function getOauth64() + { + return 'oauth'; + } +} \ No newline at end of file