diff --git a/tests/functional/_bootstrap.php b/tests/functional/_bootstrap.php
index dd521d81837918276552e0750f6e85bea67e2171..2ffdd75e623bcc64c1d3f8bcb943b1ac051d0318 100644
--- a/tests/functional/_bootstrap.php
+++ b/tests/functional/_bootstrap.php
@@ -9,6 +9,7 @@ ini_set('include_path', $inc_path);
 require 'lib/classes/StudipAutoloader.php';
 require 'lib/functions.php';
 require_once 'lib/language.inc.php';
+require 'lib/visual.inc.php';
 
 $STUDIP_BASE_PATH = realpath(dirname(__FILE__) . '/../..');
 
@@ -25,6 +26,10 @@ StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/models/resources');
 StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/phplib');
 StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/raumzeit');
 StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/resources');
+StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/plugins/core');
+StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/modules');
+StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/plugins/db');
+StudipAutoloader::addAutoloadPath($STUDIP_BASE_PATH . '/lib/plugins/engine');
 
 // load config-variables
 StudipFileloader::load(
@@ -33,6 +38,12 @@ StudipFileloader::load(
     compact('STUDIP_BASE_PATH', 'ABSOLUTE_URI_STUDIP', 'ASSETS_URL', 'CANONICAL_RELATIVE_PATH_STUDIP'),
     true
 );
+require 'config/config.inc.php';
+
+// Do not send mails of any kind during tests
+require 'vendor/email_message/email_message.php';
+require 'vendor/email_message/debug_message.php';
+StudipMail::setDefaultTransporter(new debug_message_class());
 
 require_once 'vendor/flexi/lib/flexi.php';
 $GLOBALS['template_factory'] = new Flexi_TemplateFactory(dirname(dirname(__DIR__)) . '/templates');
diff --git a/tests/functional/lib/models/resources/ResourceAssignmentTest.php b/tests/functional/lib/models/resources/ResourceAssignmentTest.php
index c86dbb63024d0684cf7b5201c33c4806be0762b1..78b71f87f159bc3fb0aa9ac37922eaad99279d5e 100644
--- a/tests/functional/lib/models/resources/ResourceAssignmentTest.php
+++ b/tests/functional/lib/models/resources/ResourceAssignmentTest.php
@@ -160,9 +160,14 @@ class ResourceAssignmentTest extends \Codeception\Test\Unit
     {
         $found_overlaps = $this->booking->getOverlappingBookings();
 
+        $count = 0;
+        if(!empty($found_overlaps)) {
+            $count = count($found_overlaps[0]);
+        }
+
         $this->assertEquals(
             0,
-            count($found_overlaps[0])
+            $count
         );
     }
 
diff --git a/tests/functional/lib/resources/ResourceManagerTest.php b/tests/functional/lib/resources/ResourceManagerTest.php
index f8dc2f8c11c93a4391b242d6aad9842428d4ff60..8eb309ca876e3ca42f35239a246efe3b403fa718 100644
--- a/tests/functional/lib/resources/ResourceManagerTest.php
+++ b/tests/functional/lib/resources/ResourceManagerTest.php
@@ -1,9 +1,6 @@
 <?php
-
-
 require_once __DIR__ . '/../../_bootstrap.php';
 
-
 class ResourceManagerTest extends \Codeception\Test\Unit
 {
     protected $db_handle;
@@ -75,39 +72,6 @@ class ResourceManagerTest extends \Codeception\Test\Unit
         $GLOBALS['user'] = $this->oldUser;
      }
 
-
-    /*
-    //TODO: make this test working with the standard perm object!
-    public function testGetGlobalResourcePermissions()
-    {
-
-        $u = new User();
-
-        $this->assertEquals(
-            'admin',
-            ResourceManager::getGlobalResourcePermission($u)
-        );
-
-        RolePersistence::assignRole('ResourceAdmin');
-        $this->assertEquals(
-            'admin',
-            ResourceManager::getGlobalResourcePermission($u)
-        );
-
-        RolePersistence::assignRole('ResourceUser');
-        $this->assertEquals(
-            'dozent',
-            ResourceManager::getGlobalResourcePermission($u)
-        );
-
-        RolePersistence::assignRole('ResourceUserSecretary');
-        $this->assertEquals(
-            'tutor',
-            ResourceManager::getGlobalResourcePermission($u)
-        );
-    }
-    */
-
     public function testCreateCategory()
     {
         $category = ResourceManager::createCategory(
@@ -266,22 +230,6 @@ class ResourceManagerTest extends \Codeception\Test\Unit
         );
     }
 
-    /*
-    public function testRequestResource()
-    {
-        $request = ResourceManager::requestResource(
-            $this->perm_resource,
-            $this->perm_user,
-            new DateTime('2017-10-01 8:00:00 +0000'),
-            new DateTime('2017-10-01 10:00:00 +0000'),
-            'testRequestResource',
-            [
-                'test_is_test'
-            ]
-        );
-    }
-    */
-
     public function testCopyResource()
     {
         $copy = ResourceManager::copyResource(
@@ -351,198 +299,139 @@ class ResourceManagerTest extends \Codeception\Test\Unit
         );
     }
 
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testEmptyPositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->getId();
         $position->property_id = $this->position_def->id;
         $position->state = '';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadLatitudePositionState1()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->getId();
         $position->property_id = $this->position_def->id;
         $position->state = '14.29302-31.28323-5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadLatitudePositionState2()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->getId();
         $position->property_id = $this->position_def->id;
         $position->state = '+14-31.28323-5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testMissingLatitudePositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-31.28323-5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadLongitudePositionState1()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31-5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadLongitudePositionState2()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-+31.28323-5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testMissingLongitudePositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302--5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadAltitudePositionState1()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31.28323-+5.292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadAltitudePositionState2()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31.28323+5292CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testMissingAltitudePositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31.28323CRSWGS_84/';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testBadSuffixPositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31.28323-5.292CRSWGS_84';
 
-        $position_array = ResourceManager::getPositionArray($position);
+        ResourceManager::getPositionArray($position);
     }
 
-
-    /**
-     * @expectedException ResourcePropertyStateException
-     */
     public function testMissingSuffixPositionState()
     {
+        $this->expectException(ResourcePropertyStateException::class);
+
         $position = new ResourceProperty();
         $position->property_id = $this->position_def->id;
         $position->state = '-14.29302-31.28323-5.292';
 
-        $position_array = ResourceManager::getPositionArray($position);
-    }
-
-}
-
-
-//Mock classes:
-
-
-/*
-class RolePersistence
-{
-    private static $assigned_role;
-
-    public static function assignRole($assigned_role = 'ResourceUserSecretary')
-    {
-        self::$assigned_role = $assigned_role;
-    }
-    public static function isAssignedRole($user_id, $role_name)
-    {
-        return $role_name == self::$assigned_role;
-    }
-}
-*/
-/*
-class Perm
-{
-    private $assigned_perm;
-
-    public function __construct($assigned_perm = 'user')
-    {
-        $this->assigned_perm = $assigned_perm;
+        ResourceManager::getPositionArray($position);
     }
 
-    public function get_perm($user_id)
-    {
-        return $this->assigned_perm;
-    }
 }
-*/