예제 #1
0
<?php

use Codeception\Util\Fixtures;
use Faker\Factory as Faker;
$config = parse_ini_file('tests/acceptance/config.ini', true);
/**
 * create fixture
 * このデータは$appを使って直接eccubeのデータベースに作成される
 * よってCodeceptionの設定によってコントロールされず、テスト後もデータベース内にこのデータは残る
 * データの件数によって、作成するかどうか判定される
 */
require_once $config['eccube_path'] . 'autoload.php';
$app = Eccube\Application::getInstance();
// Disable to TransactionListener.
$app->setTestMode(true);
$app->initialize();
$app->initializePlugin();
$app->register(new \Eccube\Tests\ServiceProvider\FixtureServiceProvider());
$app->boot();
// この Fixture は Cest ではできるだけ使用せず, 用途に応じた Fixture を使用すること
Fixtures::add('app', $app);
use Eccube\Common\Constant;
use Eccube\Entity\Customer;
use Eccube\Entity\Master\CustomerStatus;
$faker = Faker::create('ja_JP');
Fixtures::add('faker', $faker);
$num = $app['orm.em']->getRepository('Eccube\\Entity\\Customer')->createQueryBuilder('o')->select('count(o.id)')->where('o.del_flg = 0')->getQuery()->getSingleScalarResult();
if ($num < $config['fixture_customer_num']) {
    $num = $config['fixture_customer_num'] - $num;
    for ($i = 0; $i < $num; $i++) {
        $email = microtime(true) . '.' . $faker->safeEmail;