/**
  * Expecting integrity constraint violation exception because this test produce
  * member a duplication in a group. 
  * 
  * @expectedException     Illuminate\Database\QueryException
  * @expectedExceptionCode 23000
  */
 public function testCanNotHaveDuplicateMembers()
 {
     // TODO : Find a better solution to validate this exception is raise.
     // This method works with MySQL and MariaDB, This test could fail using
     // other databases.
     $group = FactoryMuffin::create('DMA\\Friends\\Models\\UserGroup');
     // Create member instances
     $members = FactoryMuffin::seed(2, 'RainLab\\User\\Models\\User');
     foreach ($members as $member) {
         $group->users()->attach($member->id);
     }
     // Here this test should fail and raise and exception because
     // this member already exists
     $group->users()->attach($members[0]->id);
 }
Exemplo n.º 2
0
FactoryMuffin::define('DMA\\Friends\\Models\\Location', ['title' => 'word', 'description' => 'optional:text', 'created_at' => 'dateTime|now']);
FactoryMuffin::define('DMA\\Friends\\Models\\Reward', ['title' => 'sentence', 'description' => 'optional:text', 'excerpt' => 'optional:text', 'fine_print' => 'optional:text', 'points' => 'randomDigitNotNull', 'image' => 'optional:imageUrl|400;600', 'barcode' => 'randomLetter|3', 'date_begin' => 'optional:dateTime', 'date_end' => 'optional:dateTime', 'days_valid' => 'optional:randomDigit|2', 'inventory' => 'optional:randomDigit|3', 'enable_email' => 'boolean', 'redemption_email' => 'optional:text', 'is_published' => 'boolean', 'is_archived' => 'boolean', 'hidden' => 'boolean', 'created_at' => 'dateTime|now']);
FactoryMuffin::define('DMA\\Friends\\Models\\Step', ['title' => 'sentence', 'created_at' => 'dateTime|now', 'updated_at' => 'dateTime|now']);
FactoryMuffin::define('RainLab\\User\\Models\\User', ['name' => 'userName', 'username' => 'userName', 'email' => 'email', 'password' => 'password', 'password_confirmation' => 'password', 'is_activated' => 'boolean', 'activated_at' => 'dateTime', 'last_login' => 'dateTime', 'country' => function ($object, $saved) {
    return Country::orderByRaw('RAND()')->first();
}, 'state' => function ($object, $saved) {
    return State::orderByRaw('RAND()')->first();
}, 'created_at' => 'dateTime|now', 'updated_at' => 'dateTime|now', 'phone' => 'optional:phone', 'company' => 'optional:company', 'street_addr' => 'streetAddress', 'city' => 'city', 'zip' => 'postcode', 'points' => 'randomNumber']);
FactoryMuffin::define('DMA\\Friends\\Models\\Usermeta', ['first_name' => 'firstName', 'last_name' => 'lastName', 'email_optin' => 'boolean', 'current_member' => 'boolean', 'current_member_number' => 'randomNumber']);
/**
 * Create and empty group
 * @var DMA\Friends\Models\UserGroup
 */
FactoryMuffin::define('DMA\\Friends\\Models\\UserGroup', ['owner_id' => 'factory|RainLab\\User\\Models\\User', 'is_active' => 'boolean|100']);
/**
 * Create a group with the maxium of members allow in a group.
 * The limit is set in the settings of the plugin
 * @var DMA\Friends\Models\UserGroup
 */
FactoryMuffin::define('filled:DMA\\Friends\\Models\\UserGroup', [], function ($object) {
    $limit = Settings::get('maximum_users_per_group');
    $members = FactoryMuffin::seed($limit, 'RainLab\\User\\Models\\User');
    $members_ids = array_map(function ($m) {
        return $m->id;
    }, $members);
    $object->users()->attach($members_ids);
    /*
        forEach($members as $user){
            $object->addUser($user);    
        }*/
});
Exemplo n.º 3
0
FactoryMuffin::define('Needle', array('modality_id' => 'factory|Modality', 'name' => 'sentence', 'manufacturer' => 'company', 'file' => 'md5'), function ($object) {
    $parameters = FactoryMuffin::seed(3, 'Parameter');
    foreach ($parameters as $parameter) {
        $parameter->paramable_id = $object->id;
        $parameter->paramable_type = 'needle';
    }
    $object->parameters()->saveMany($parameters);
});
FactoryMuffin::define('PowerGenerator', array('modality_id' => 'factory|Modality', 'name' => 'sentence', 'manufacturer' => 'company'), function ($object) {
    $needles = FactoryMuffin::seed(3, 'Needle');
    $object->needles()->saveMany($needles);
    $parameters = FactoryMuffin::seed(3, 'Parameter');
    foreach ($parameters as $parameter) {
        $parameter->paramable_id = $object->id;
        $parameter->paramable_type = 'power_generator';
    }
    $object->parameters()->saveMany($parameters);
});
FactoryMuffin::define('Protocol', array('modality_id' => 'factory|Modality', 'name' => 'sentence', 'algorithm' => 'text'));
FactoryMuffin::define('Parameter', array('name' => 'word', 'type' => 'word', 'widget' => 'word', 'value' => 'float', 'priority' => 'integer', 'paramable_id' => '-1', 'paramable_type' => ''));
FactoryMuffin::define('Requirement', array('protocol_id' => 'factory|Protocol', 'family' => 'word', 'parameter_id' => 'factory|Parameter'), function ($object) {
    $parameter = FactoryMuffin::create('Parameter');
    $parameter->paramable_id = $object->id;
    $parameter->paramable_type = 'requirement';
    $object->parameter()->save($parameter);
});
FactoryMuffin::define('Combination', array('needle_id' => 'factory|Needle', 'power_generator_id' => 'factory|PowerGenerator', 'protocol_id' => 'factory|Protocol'));
FactoryMuffin::define('User', array('username' => 'string', 'password' => 'string', 'email' => 'string'), function ($object) {
    $accounts = FactoryMuffin::seed(5, 'Account');
    $object->accounts()->saveMany($accounts);
});
 /**
  * @Given /^there are (\d+) "([^"]*)"s$/
  */
 public function thereAreSomeNumberOfModel($num, $model_name)
 {
     FactoryMuffin::seed($num, $model_name);
 }
Exemplo n.º 5
0
 /**
  * Test if endpoint last connected is updated
  *
  * @throws InputException
  * @throws NoServerAvailableException
  */
 public function testUpdateEndpoint()
 {
     $manager = new Manager();
     /** @var Endpoint[] $endpoints */
     $endpoints = FactoryMuffin::seed(3, 'WebservicesNl\\Common\\Endpoint\\Endpoint');
     foreach ($endpoints as $endpoint) {
         $manager->addEndpoint($endpoint);
     }
     $endpoint = $manager->updateLastConnected();
     $dateTime = new \DateTime();
     self::assertInstanceOf('\\DateTime', $manager->getActiveEndpoint()->getLastConnected());
     self::assertEquals($dateTime, $endpoint->getLastConnected(), 'DateTimes should be close to each other', 5);
 }