public static function setUpBeforeClass()
 {
     parent::setUpBeforeClass();
     Repository::setDefaultRepositoryClassName(MySql::class);
     self::SetDefaultConnectionSettings();
     Log::DisableLogging();
     $unitTestingSolutionSchema = new UnitTestingSolutionSchema();
     $unitTestingSolutionSchema->checkModelSchemas();
     // Make sure the test model objects have the any other repository disconnected.
     Model::deleteRepositories();
 }
 public function testDefaultRepositoryCanBeChanged()
 {
     Repository::setDefaultRepositoryClassName("\\Rhubarb\\Stem\\Repositories\\MySql\\MySql");
     $repository = Repository::getNewDefaultRepository(new Example());
     $this->assertInstanceOf("\\Rhubarb\\Stem\\Repositories\\MySql\\MySql", $repository);
     // Also check that non extant repositories throw an exception.
     $this->setExpectedException("\\Rhubarb\\Stem\\Exceptions\\ModelException");
     Repository::setDefaultRepositoryClassName("\\Rhubarb\\Stem\\Repositories\\Fictional\\Fictional");
     // Reset to the normal so we don't upset other unit tests.
     Repository::setDefaultRepositoryClassName("\\Rhubarb\\Stem\\Repositories\\Offline\\Offline");
 }
 protected function setUp()
 {
     parent::setUp();
     Application::current()->registerModule(new CommunicationsModule());
     Application::current()->initialiseModules();
     Model::clearAllRepositories();
     CommunicationProcessor::setProviderClassName(EmailProvider::class, UnitTestingEmailProvider::class);
     Repository::setDefaultRepositoryClassName(Offline::class);
     Communication::clearObjectCache();
     CommunicationItem::clearObjectCache();
 }