Ejemplo n.º 1
0
 public function setUp()
 {
     Eloquent::unguard();
     $db = new DB();
     $db->addConnection(['driver' => 'sqlite', 'database' => ':memory:']);
     $db->bootEloquent();
     $db->setAsGlobal();
     $this->schema()->create('users', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('email')->unique();
         $table->unsignedInteger('current_team_id')->nullable();
         $table->timestamps();
     });
     $this->schema()->create('clients', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('email')->unique();
         $table->unsignedInteger('current_team_id')->nullable();
         $table->timestamps();
     });
     $this->schema()->create('question_types', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('slug')->unique();
         $table->timestamps();
     });
     $question_types = ['Small Text', 'Large Text', 'Numeric', 'Date & Time', 'Multiple Choice', 'File Upload'];
     foreach ($question_types as $question_type) {
         QuestionType::create(['name' => $question_type, 'slug' => str_slug($question_type, '_')]);
     }
     $this->schema()->create('sections', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('slug')->unique();
         $table->string('class_name')->nullable();
         $table->text('options')->nullable();
         $table->unsignedInteger('team_id')->nullable();
         $table->softDeletes();
         $table->timestamps();
     });
     $this->schema()->create('groups', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('slug')->unique();
         $table->text('options')->nullable();
         $table->unsignedInteger('section_id')->index();
         $table->unsignedInteger('team_id')->nullable();
         $table->softDeletes();
         $table->timestamps();
         $table->foreign('section_id')->references('id')->on('sections');
     });
     $this->schema()->create('questions', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->string('slug')->unique();
         $table->unsignedInteger('question_type_id')->index();
         $table->text('options')->nullable();
         $table->text('choices')->nullable();
         $table->unsignedInteger('group_id')->index();
         $table->unsignedInteger('team_id')->nullable();
         $table->softDeletes();
         $table->timestamps();
         $table->foreign('question_type_id')->references('id')->on('question_types');
         $table->foreign('group_id')->references('id')->on('groups');
     });
     $this->schema()->create('answers', function (Blueprint $table) {
         $table->increments('id');
         $table->unsignedInteger('question_id')->index();
         $table->morphs('answerable');
         $table->text('value');
         $table->text('options')->nullable();
         $table->unsignedInteger('team_id')->nullable();
         $table->softDeletes();
         $table->timestamps();
         $table->foreign('question_id')->references('id')->on('questions');
     });
 }