2016-05-31 23:55:06 +02:00
|
|
|
<?php
|
2016-06-15 06:03:16 +02:00
|
|
|
|
|
|
|
use SilverStripe\ORM\DataObject;
|
2016-08-19 00:51:35 +02:00
|
|
|
use SilverStripe\Dev\BulkLoader_Result;
|
|
|
|
use SilverStripe\Dev\SapphireTest;
|
|
|
|
use SilverStripe\Dev\TestOnly;
|
|
|
|
|
2016-05-31 23:55:06 +02:00
|
|
|
/**
|
|
|
|
* @package framework
|
|
|
|
* @subpackage tests
|
|
|
|
*/
|
|
|
|
class BulkLoaderResultTest extends SapphireTest
|
|
|
|
{
|
|
|
|
protected $extraDataObjects = array('BulkLoaderTestPlayer');
|
|
|
|
|
|
|
|
public function setUp()
|
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
BulkLoaderTestPlayer::create(array('Name' => 'Vincent', 'Status' => 'Available'))->write();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testBulkLoaderResultCreated()
|
|
|
|
{
|
|
|
|
$results = BulkLoader_Result::create();
|
|
|
|
$player = BulkLoaderTestPlayer::create(array('Name' => 'Rangi', 'Status' => 'Possible'));
|
|
|
|
$player->write();
|
|
|
|
$results->addCreated($player, 'Speedster');
|
|
|
|
|
|
|
|
$this->assertEquals($results->CreatedCount(), 1);
|
|
|
|
$this->assertSame(
|
|
|
|
'Rangi',
|
|
|
|
$results->Created()->find('Name', 'Rangi')->Name,
|
|
|
|
'The player Rangi should be recorded as created in $results'
|
|
|
|
);
|
|
|
|
$this->assertSame(
|
|
|
|
'Possible',
|
|
|
|
$results->Created()->find('Name', 'Rangi')->Status,
|
|
|
|
'The player Rangi should have Status of "Possible" in $results'
|
|
|
|
);
|
|
|
|
$this->assertSame(
|
|
|
|
'Speedster',
|
|
|
|
$results->Created()->find('Name', 'Rangi')->_BulkLoaderMessage,
|
|
|
|
'Rangi should have _BulkLoaderMessage of Speedster'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testBulkLoaderResultDeleted()
|
|
|
|
{
|
|
|
|
$results = BulkLoader_Result::create();
|
|
|
|
$player = BulkLoaderTestPlayer::get()->find('Name', 'Vincent');
|
|
|
|
$results->addDeleted($player, 'Retired');
|
|
|
|
$player->delete();
|
|
|
|
|
|
|
|
$this->assertEquals($results->DeletedCount(), 1);
|
|
|
|
$this->assertSame(
|
|
|
|
'Vincent',
|
|
|
|
$results->Deleted()->find('Name', 'Vincent')->Name,
|
|
|
|
'The player Vincent should be recorded as deleted'
|
|
|
|
);
|
|
|
|
$this->assertSame(
|
|
|
|
'Retired',
|
|
|
|
$results->Deleted()->find('Name', 'Vincent')->_BulkLoaderMessage,
|
|
|
|
'Vincent should have a _BulkLoaderMessage of Retired'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testBulkLoaderResultUpdated()
|
|
|
|
{
|
|
|
|
$results = BulkLoader_Result::create();
|
|
|
|
$player = BulkLoaderTestPlayer::get()->find('Name', 'Vincent');
|
|
|
|
$player->Status = 'Unavailable';
|
|
|
|
$player->write();
|
|
|
|
$results->addUpdated($player, 'Injured');
|
|
|
|
|
|
|
|
$this->assertEquals($results->UpdatedCount(), 1);
|
|
|
|
$this->assertSame(
|
|
|
|
'Vincent',
|
|
|
|
$results->Updated()->find('Name', 'Vincent')->Name,
|
|
|
|
'The player Vincent should be recorded as updated'
|
|
|
|
);
|
|
|
|
$this->assertSame(
|
|
|
|
'Unavailable',
|
|
|
|
$results->Updated()->find('Name', 'Vincent')->Status,
|
|
|
|
'The player Vincent should have a Status of Unavailable'
|
|
|
|
);
|
|
|
|
$this->assertSame(
|
|
|
|
'Injured',
|
|
|
|
$results->Updated()->find('Name', 'Vincent')->_BulkLoaderMessage,
|
|
|
|
'Vincent is injured'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class BulkLoaderTestPlayer extends DataObject implements TestOnly
|
|
|
|
{
|
|
|
|
private static $db = array(
|
|
|
|
'Name' => 'Varchar',
|
|
|
|
'Status' => 'Varchar',
|
|
|
|
);
|
|
|
|
}
|