This commit is contained in:
Xes
2025-08-14 22:41:49 +02:00
parent 2de81ccc46
commit 8ce45119b6
39774 changed files with 4309466 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\ArrayValueConverterMap;
use Ddeboer\DataImport\ValueConverter\CallbackValueConverter;
/**
* @author Christoph Rosse <christoph@rosse.at>
*/
class ArrayValueConverterMapTest extends \PHPUnit_Framework_TestCase
{
/**
* @expectedException InvalidArgumentException
*/
public function testConvertWithNoArrayArgument()
{
$converter = new ArrayValueConverterMap(array('foo' => function($input) {return $input;}));
call_user_func($converter, 'foo');
}
public function testConvertWithMultipleFields()
{
$data = array(
array(
'foo' => 'test',
'bar' => 'test'
),
array(
'foo' => 'test2',
'bar' => 'test2'
),
);
$addBarConverter = function($input) { return 'bar'.$input; };
$addBazConverter = function($input) { return 'baz'.$input; };
$converter = new ArrayValueConverterMap(
array(
'foo' => array($addBarConverter),
'bar' => array($addBazConverter, $addBarConverter),
)
);
$data = call_user_func($converter, $data);
$this->assertEquals('bartest', $data[0]['foo']);
$this->assertEquals('barbaztest', $data[0]['bar']);
$this->assertEquals('bartest2', $data[1]['foo']);
$this->assertEquals('barbaztest2', $data[1]['bar']);
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\CharsetValueConverter;
/**
* @author Markus Bachmann <markus.bachmann@bachi.biz>
*/
class CharsetValueConverterTest extends \PHPUnit_Framework_TestCase
{
public function testConvert()
{
$utf8 = utf8_encode('test');
$converter = new CharsetValueConverter('UTF-8');
$this->assertEquals($utf8, call_user_func($converter, $utf8));
$value = iconv('UTF-8', 'UTF-16', $utf8);
$converter = new CharsetValueConverter('UTF-8', 'UTF-16');
$this->assertEquals($utf8, call_user_func($converter, $value));
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\DateTimeToStringValueConverter;
class DateTimeToStringValueConverterTest extends \PHPUnit_Framework_TestCase
{
public function testConvertWithoutOutputFormatReturnsString()
{
$value = new \DateTime('2010-01-01 01:00:00');
$converter = new DateTimeToStringValueConverter;
$output = $converter->convert($value);
$this->assertEquals('2010-01-01 01:00:00', $output);
}
/**
* @expectedException \Ddeboer\DataImport\Exception\UnexpectedValueException
* @expectedExceptionMessage Input must be DateTime object
*/
public function testInvalidInputFormatThrowsException()
{
$value = '14/10/2008 09:40:20';
$converter = new DateTimeToStringValueConverter;
$converter->convert($value);
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\DateTimeValueConverter;
class DateTimeValueConverterTest extends \PHPUnit_Framework_TestCase
{
public function testConvertWithoutInputOrOutputFormatReturnsDateTimeInstance()
{
$value = '2011-10-20 13:05';
$converter = new DateTimeValueConverter;
$output = call_user_func($converter, $value);
$this->assertInstanceOf('\DateTime', $output);
$this->assertEquals('13', $output->format('H'));
}
public function testConvertWithFormatReturnsDateTimeInstance()
{
$value = '14/10/2008 09:40:20';
$converter = new DateTimeValueConverter('d/m/Y H:i:s');
$output = call_user_func($converter, $value);
$this->assertInstanceOf('\DateTime', $output);
$this->assertEquals('20', $output->format('s'));
}
public function testConvertWithInputAndOutputFormatReturnsString()
{
$value = '14/10/2008 09:40:20';
$converter = new DateTimeValueConverter('d/m/Y H:i:s', 'd-M-Y');
$output = call_user_func($converter, $value);
$this->assertEquals('14-Oct-2008', $output);
}
public function testConvertWithNoInputStringWithOutputFormatReturnsString()
{
$value = '2011-10-20 13:05';
$converter = new DateTimeValueConverter(null, 'd-M-Y');
$output = call_user_func($converter, $value);
$this->assertEquals('20-Oct-2011', $output);
}
public function testInvalidInputFormatThrowsException()
{
$value = '14/10/2008 09:40:20';
$converter = new DateTimeValueConverter('d-m-y', 'd-M-Y');
$this->setExpectedException("UnexpectedValueException", "14/10/2008 09:40:20 is not a valid date/time according to format d-m-y");
call_user_func($converter, $value);
}
public function testNullIsReturnedIfNullPassed()
{
$converter = new DateTimeValueConverter('d-m-y', 'd-M-Y');
$this->assertNull(call_user_func($converter, null));
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\MappingValueConverter;
class MappingValueConverterTest extends \PHPUnit_Framework_TestCase
{
/**
* @expectedException Ddeboer\DataImport\Exception\UnexpectedValueException
* @expectedExceptionMessage Cannot find mapping for value "unexpected value"
*/
public function testConvert()
{
$converter = new MappingValueConverter(array(
'source' => 'destination'
));
$this->assertSame('destination', call_user_func($converter, 'source'));
call_user_func($converter, 'unexpected value');
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace Ddeboer\DataImport\Tests\ValueConverter;
use Ddeboer\DataImport\ValueConverter\ObjectConverter;
/**
* @author Markus Bachmann <markus.bachmann@bachi.biz
*/
class ObjectConverterTest extends \PHPUnit_Framework_TestCase
{
public function testGetAndSetPropertyPath()
{
$converter = new ObjectConverter();
$this->assertNull($converter->getPropertyPath());
$converter->setPropertyPath('foo.bar');
$this->assertEquals('foo.bar', $converter->getPropertyPath());
}
public function testConvertWithToString()
{
$converter = new ObjectConverter();
$object = new ToStringDummy();
$this->assertEquals('foo', call_user_func($converter, $object));
}
public function testConvertWithPropertyPath()
{
$converter = new ObjectConverter('foo');
$object = new Dummy();
$this->assertEquals('bar', call_user_func($converter, $object));
}
/**
* @expectedException RuntimeException
*/
public function testConvertAObjectWithoutToString()
{
$converter = new ObjectConverter;
call_user_func($converter, new Dummy());
}
/**
* @expectedException Ddeboer\DataImport\Exception\UnexpectedTypeException
*/
public function testConvetANonObject()
{
$converter = new ObjectConverter();
call_user_func($converter, 'foo');
}
}
class Dummy
{
public $foo = 'bar';
}
class ToStringDummy
{
public function __toString()
{
return 'foo';
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace Ddeboer\DataImport\ValueConverter;
use Ddeboer\DataImport\ValueConverter\StringToObjectConverter;
/**
* @author Markus Bachmann <markus.bachmann@bachi.biz>
*/
class StringToObjectConverterTest extends \PHPUnit_Framework_TestCase
{
public function testConvert()
{
$repository = $this->getMock(
'Doctrine\\Common\\Persistence\\ObjectRepository',
array('find', 'findAll', 'findBy', 'findOneBy', 'getClassName', 'findOneByName')
);
$converter = new StringToObjectConverter($repository, 'name');
$class = new \stdClass();
$repository->expects($this->once())
->method('findOneByName')
->with('bar')
->will($this->returnValue($class));
$this->assertEquals($class, call_user_func($converter, 'bar'));
}
}