From 249c2cbe8cf51c36f7cc272fb2b964b61e583a31 Mon Sep 17 00:00:00 2001
From: Chris Ballard <Chris.Ballard@fitchlearning.com>
Date: Tue, 22 May 2018 13:39:22 +0100
Subject: [PATCH] Adds tests for auth source class instantiation

---
 tests/lib/SimpleSAML/Auth/SourceTest.php | 42 ++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 tests/lib/SimpleSAML/Auth/SourceTest.php

diff --git a/tests/lib/SimpleSAML/Auth/SourceTest.php b/tests/lib/SimpleSAML/Auth/SourceTest.php
new file mode 100644
index 000000000..0cbf1e849
--- /dev/null
+++ b/tests/lib/SimpleSAML/Auth/SourceTest.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace SimpleSAML\Test\Auth;
+
+use SimpleSAML\Auth\SourceFactory;
+use SimpleSAML\Test\Utils\ClearStateTestCase;
+
+/**
+ * Tests for SimpleSAML_Auth_Source
+ */
+class SourceTest extends ClearStateTestCase
+{
+    public function testParseAuthSource()
+    {
+        $class = new \ReflectionClass('SimpleSAML_Auth_Source');
+        $method = $class->getMethod('parseAuthSource');
+        $method->setAccessible(true);
+
+        // test direct instantiation of the auth source object
+        $authSource = $method->invokeArgs(null, ['test', ['SimpleSAML\Test\Auth\TestAuthSource']]);
+        $this->assertInstanceOf('SimpleSAML\Test\Auth\TestAuthSource', $authSource);
+
+        // test instantiation via an auth source factory
+        $authSource = $method->invokeArgs(null, ['test', ['SimpleSAML\Test\Auth\TestAuthSourceFactory']]);
+        $this->assertInstanceOf('SimpleSAML\Test\Auth\TestAuthSource', $authSource);
+    }
+}
+
+class TestAuthSource extends \SimpleSAML_Auth_Source
+{
+    public function authenticate(&$state)
+    {
+    }
+}
+
+class TestAuthSourceFactory implements SourceFactory
+{
+    public function create(array $info, array $config)
+    {
+        return new TestAuthSource($info, $config);
+    }
+}
-- 
GitLab