示例#1
0
<?php

/**
 * Copyright 2010-12 Nickolas Whiting. All rights reserved.
 * Use of this source code is governed by the Apache 2 license
 * that can be found in the LICENSE file.
 */
require_once '__init__.php';
xp_import('unittest');
unittest\test(function ($test) {
    $db_1 = new \XPSPL\database\Processes();
    $db_2 = new \XPSPL\database\Processes();
    $count = 0;
    for ($i = 0; $i < 1000; $i++) {
        $db_1->install(new \XPSPL\Process(null));
        $db_2->install(new \XPSPL\Process(null, null));
    }
    $test->instanceof($db_1->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), 'XPSPL\\database\\Processes');
    logger(XPSPL_LOG)->info($db_1->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY)->count());
    $test->count($db_1->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), 1000);
    $test->instanceof($db_2->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), 'XPSPL\\database\\Processes');
    $test->count($db_2->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), 1000);
    $org_db = clone $db_1;
    $db_1->merge($db_2);
    $test->equal($db_1->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY)->rewind(), $org_db->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY)->rewind());
    $test->equal($db_1->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY)->end(), $db_2->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY)->end());
});
示例#2
0
<?php

/**
 * Copyright 2010-12 Nickolas Whiting. All rights reserved.
 * Use of this source code is governed by the Apache 2 license
 * that can be found in the LICENSE file.
 */
require_once '__init__.php';
xp_import('unittest');
unittest\test(function ($test) {
    $db = new \XPSPL\database\Processes();
    $p1 = new \XPSPL\Process(null);
    $p2 = xp_high_priority(new \XPSPL\Process(null));
    $db->install($p1);
    $db->install($p2);
    $db->delete($p1);
    $test->equal($db->count(), 1);
    $test->equal($db->current()->get_priority(), 0);
}, "process delete");
示例#3
0
<?php

/**
 * Copyright 2010-12 Nickolas Whiting. All rights reserved.
 * Use of this source code is governed by the Apache 2 license
 * that can be found in the LICENSE file.
 */
require_once '__init__.php';
xp_import('unittest');
unittest\test(function ($test) {
    $database = new \XPSPL\database\Processes();
    $count = 10;
    for ($i = 0; $i < $count; $i++) {
        $database->install(new \XPSPL\Process(function () {
        }));
    }
    $test->instanceof($database->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), 'XPSPL\\database\\Processes');
    $test->count($database->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY), $count);
    $db = $database->offsetGet(XPSPL_PROCESS_DEFAULT_PRIORITY);
    for ($i = XPSPL_SUBDATABASE_DEFAULT_PRIORITY; $i < $count; $i++) {
        $test->equal($db->offsetGet($i)->get_priority(), $i);
    }
});