mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-16 20:30:09 -07:00
Add RelationMapper tests
This commit is contained in:
parent
a20e31da9b
commit
32bac75cbd
@ -267,9 +267,6 @@ u9107p06c01: u9107p01c01
|
|||||||
54654c06: 54654c01
|
54654c06: 54654c01
|
||||||
54701p01c01: 54654c01
|
54701p01c01: 54654c01
|
||||||
|
|
||||||
54779c01: 54779
|
|
||||||
54779c02: 54779
|
|
||||||
|
|
||||||
559c02: 559c01
|
559c02: 559c01
|
||||||
|
|
||||||
57028b: 57028a
|
57028b: 57028a
|
||||||
@ -358,61 +355,10 @@ u9142p04c03: u9142p02c04
|
|||||||
|
|
||||||
16530: 16529p01c01
|
16530: 16529p01c01
|
||||||
|
|
||||||
15875: 15680c01
|
|
||||||
15875pr0001ac01: 15680c01
|
|
||||||
15875pr0001bc01: 15680c01
|
|
||||||
15875pr0002c01: 15680c01
|
|
||||||
15875pr0003c01: 15680c01
|
|
||||||
15875pr0004c01: 15680c01
|
|
||||||
15875pr0005c01: 15680c01
|
|
||||||
15875pr0006c01: 15680c01
|
|
||||||
15875pr0007c01: 15680c01
|
|
||||||
15875pr0008c01: 15680c01
|
|
||||||
15875pr0011c01: 15680c01
|
|
||||||
15875pr0012c01: 15680c01
|
|
||||||
15875pr0013c01: 15680c01
|
|
||||||
15875pr0102c01: 15680c01
|
|
||||||
15875pr0105c01: 15680c01
|
|
||||||
15875pr0106c01: 15680c01
|
|
||||||
|
|
||||||
11403: 11202p01c01
|
|
||||||
11403pr0001c01: 11202p01c01
|
|
||||||
11403pr0002c01: 11202p01c01
|
|
||||||
11403pr0003c01: 11202p01c01
|
|
||||||
11403pr0004c01: 11202p01c01
|
|
||||||
11403pr0005c01: 11202p01c01
|
|
||||||
11403pr0006c01: 11202p01c01
|
|
||||||
11403pr0008c01: 11202p01c01
|
|
||||||
11403pr0102c01: 11202p01c01
|
|
||||||
|
|
||||||
11407: 11244p01c01
|
|
||||||
11407pr0001c01: 11244p01c01
|
|
||||||
11407pr0003c01: 11244p01c01
|
|
||||||
11407pr0004c01: 11244p01c01
|
|
||||||
|
|
||||||
92818: 92250p01c01
|
|
||||||
92818pr0001c01: 92250p01c01
|
|
||||||
92818pr0002c01: 92250p01c01
|
|
||||||
92818pr0003c01: 92250p01c01
|
|
||||||
92818pr0004c01: 92250p01c01
|
|
||||||
92818pr0005c01: 92250p01c01
|
|
||||||
92818pr0006c01: 92250p01c01
|
|
||||||
92818pr0007c01: 92250p01c01
|
|
||||||
92818pr0008c01: 92250p01c01
|
|
||||||
92818pr0010c01: 92250p01c01
|
|
||||||
92818pr0011c01: 92250p01c01
|
|
||||||
92818pr0012c01: 92250p01c01
|
|
||||||
|
|
||||||
92817: 92249p01c01
|
|
||||||
92817pr0001c01: 92249p01c01
|
|
||||||
92817pr0002c01: 92249p01c01
|
|
||||||
92817pr0003c01: 92249p01c01
|
|
||||||
92817pr0004c01: 92249p01c01
|
|
||||||
|
|
||||||
93549: u9180
|
|
||||||
|
|
||||||
u9142p02c01: u9142p01c01
|
u9142p02c01: u9142p01c01
|
||||||
u9142p03c01: u9142p01c01
|
u9142p03c01: u9142p01c01
|
||||||
u9142p04c01: u9142p01c01
|
u9142p04c01: u9142p01c01
|
||||||
|
|
||||||
u9140p02c01: u9140p01c01
|
u9140p02c01: u9140p01c01
|
||||||
|
|
||||||
|
92243p02c01: 92243p01c01
|
@ -150,7 +150,7 @@ wheel2a: 568c01
|
|||||||
|
|
||||||
40344c01: 43123
|
40344c01: 43123
|
||||||
11895pr0001c01: 11895
|
11895pr0001c01: 11895
|
||||||
92456pr0021c01: 92241p03c01
|
|
||||||
|
|
||||||
15672: 92946
|
15672: 92946
|
||||||
|
|
||||||
@ -215,3 +215,209 @@ x222: 13459
|
|||||||
|
|
||||||
3741: 3741a
|
3741: 3741a
|
||||||
3741c01: 3741ac01
|
3741c01: 3741ac01
|
||||||
|
|
||||||
|
15875: 15680c01
|
||||||
|
15875pr0001ac01: 15680c01
|
||||||
|
15875pr0001bc01: 15680c01
|
||||||
|
15875pr0002c01: 15680c01
|
||||||
|
15875pr0003c01: 15680c01
|
||||||
|
15875pr0004c01: 15680c01
|
||||||
|
15875pr0005c01: 15680c01
|
||||||
|
15875pr0006c01: 15680c01
|
||||||
|
15875pr0007c01: 15680c01
|
||||||
|
15875pr0008c01: 15680c01
|
||||||
|
15875pr0011c01: 15680c01
|
||||||
|
15875pr0012c01: 15680c01
|
||||||
|
15875pr0013c01: 15680c01
|
||||||
|
15875pr0102c01: 15680c01
|
||||||
|
15875pr0105c01: 15680c01
|
||||||
|
15875pr0106c01: 15680c01
|
||||||
|
|
||||||
|
# Friends Hips and Shorts
|
||||||
|
11403: 11202p01c01
|
||||||
|
11403pr0001c01: 11202p01c01
|
||||||
|
11403pr0002c01: 11202p01c01
|
||||||
|
11403pr0003c01: 11202p01c01
|
||||||
|
11403pr0004c01: 11202p01c01
|
||||||
|
11403pr0005c01: 11202p01c01
|
||||||
|
11403pr0006c01: 11202p01c01
|
||||||
|
11403pr0007: 11202p01c01
|
||||||
|
11403pr0008c01: 11202p01c01
|
||||||
|
11403pr0100: 11202p01c01
|
||||||
|
11403pr0102c01: 11202p01c01
|
||||||
|
|
||||||
|
11407: 11244p01c01
|
||||||
|
11407pr0001c01: 11244p01c01
|
||||||
|
11407pr0003c01: 11244p01c01
|
||||||
|
11407pr0004c01: 11244p01c01
|
||||||
|
|
||||||
|
92818: 92250p01c01
|
||||||
|
92818pr0001c01: 92250p01c01
|
||||||
|
92818pr0002c01: 92250p01c01
|
||||||
|
92818pr0003c01: 92250p01c01
|
||||||
|
92818pr0004c01: 92250p01c01
|
||||||
|
92818pr0005c01: 92250p01c01
|
||||||
|
92818pr0006c01: 92250p01c01
|
||||||
|
92818pr0007c01: 92250p01c01
|
||||||
|
92818pr0008c01: 92250p01c01
|
||||||
|
92818pr0010c01: 92250p01c01
|
||||||
|
92818pr0011c01: 92250p01c01
|
||||||
|
92818pr0012c01: 92250p01c01
|
||||||
|
|
||||||
|
92817: 92249p01c01
|
||||||
|
92817pr0001c01: 92249p01c01
|
||||||
|
92817pr0002c01: 92249p01c01
|
||||||
|
92817pr0003c01: 92249p01c01
|
||||||
|
92817pr0004c01: 92249p01c01
|
||||||
|
|
||||||
|
93549: u9180
|
||||||
|
|
||||||
|
92456: 92241p01c01
|
||||||
|
92456pr0001c01: 92241p01c01
|
||||||
|
92456pr0002c01: 92241p01c01
|
||||||
|
92456pr0003c01: 92241p01c01
|
||||||
|
92456pr0004c01: 92241p01c01
|
||||||
|
92456pr0005c01: 92241p01c01
|
||||||
|
92456pr0006c01: 92241p01c01
|
||||||
|
92456pr0007c01: 92241p01c01
|
||||||
|
92456pr0008c01: 92241p01c01
|
||||||
|
92456pr0009c01: 92241p01c01
|
||||||
|
92456pr0010c01: 92241p01c01
|
||||||
|
92456pr0011c01: 92241p01c01
|
||||||
|
92456pr0013c01: 92241p01c01
|
||||||
|
92456pr0015c01: 92241p01c01
|
||||||
|
92456pr0017c01: 92241p01c01
|
||||||
|
92456pr0018c01: 92241p01c01
|
||||||
|
92456pr0019c01: 92241p01c01
|
||||||
|
92456pr0021c01: 92241p01c01
|
||||||
|
92456pr0022c01: 92241p01c01
|
||||||
|
92456pr0023c01: 92241p01c01
|
||||||
|
92456pr0024c01: 92241p01c01
|
||||||
|
92456pr0025c01: 92241p01c01
|
||||||
|
92456pr0026c01: 92241p01c01
|
||||||
|
92456pr0027c01: 92241p01c01
|
||||||
|
92456pr0028c01: 92241p01c01
|
||||||
|
92456pr0029c01: 92241p01c01
|
||||||
|
92456pr0030c01: 92241p01c01
|
||||||
|
92456pr0031c01: 92241p01c01
|
||||||
|
92456pr0032c01: 92241p01c01
|
||||||
|
92456pr0033c01: 92241p01c01
|
||||||
|
92456pr0034c01: 92241p01c01
|
||||||
|
92456pr0035c01: 92241p01c01
|
||||||
|
92456pr0036c01: 92241p01c01
|
||||||
|
92456pr0037c01: 92241p01c01
|
||||||
|
92456pr0038c01: 92241p01c01
|
||||||
|
92456pr0039c01: 92241p01c01
|
||||||
|
92456pr0040c01: 92241p01c01
|
||||||
|
92456pr0041c01: 92241p01c01
|
||||||
|
92456pr0042c01: 92241p01c01
|
||||||
|
92456pr0044c01: 92241p01c01
|
||||||
|
92456pr0045c01: 92241p01c01
|
||||||
|
92456pr0046c01: 92241p01c01
|
||||||
|
92456pr0047c01: 92241p01c01
|
||||||
|
92456pr0048c01: 92241p01c01
|
||||||
|
92456pr0049c01: 92241p01c01
|
||||||
|
92456pr0051c01: 92241p01c01
|
||||||
|
92456pr0052c01a: 92241p01c01
|
||||||
|
92456pr0052c01b: 92241p01c01
|
||||||
|
92456pr0053c01: 92241p01c01
|
||||||
|
92456pr0054c01: 92241p01c01
|
||||||
|
92456pr0056c01: 92241p01c01
|
||||||
|
92456pr0057c01: 92241p01c01
|
||||||
|
92456pr0060c01: 92241p01c01
|
||||||
|
92456pr0061c01: 92241p01c01
|
||||||
|
92456pr0062c01: 92241p01c01
|
||||||
|
92456pr0063c01: 92241p01c01
|
||||||
|
92456pr0064c01: 92241p01c01
|
||||||
|
92456pr0065c01: 92241p01c01
|
||||||
|
92456pr0066c01: 92241p01c01
|
||||||
|
92456pr0067c01: 92241p01c01
|
||||||
|
92456pr0068c01: 92241p01c01
|
||||||
|
92456pr0069c01: 92241p01c01
|
||||||
|
92456pr0070c01: 92241p01c01
|
||||||
|
92456pr0071c01: 92241p01c01
|
||||||
|
92456pr0072c01: 92241p01c01
|
||||||
|
92456pr0073c01: 92241p01c01
|
||||||
|
92456pr0074c01: 92241p01c01
|
||||||
|
92456pr0075c01: 92241p01c01
|
||||||
|
92456pr0076c01: 92241p01c01
|
||||||
|
92456pr0077c01: 92241p01c01
|
||||||
|
92456pr0078c01: 92241p01c01
|
||||||
|
92456pr0079c01: 92241p01c01
|
||||||
|
92456pr0080c01: 92241p01c01
|
||||||
|
92456pr0081c01: 92241p01c01
|
||||||
|
92456pr0082c01: 92241p01c01
|
||||||
|
92456pr0083c01: 92241p01c01
|
||||||
|
92456pr0085c01: 92241p01c01
|
||||||
|
92456pr0086c01: 92241p01c01
|
||||||
|
92456pr0087: 92241p01c01
|
||||||
|
92456pr0088: 92241p01c01
|
||||||
|
92456pr0089c01: 92241p01c01
|
||||||
|
92456pr0090c01: 92241p01c01
|
||||||
|
92456pr0091c01: 92241p01c01
|
||||||
|
92456pr0092c01: 92241p01c01
|
||||||
|
92456pr0093c01: 92241p01c01
|
||||||
|
92456pr0094c01: 92241p01c01
|
||||||
|
92456pr0095c01: 92241p01c01
|
||||||
|
92456pr0096c01: 92241p01c01
|
||||||
|
92456pr0097c01: 92241p01c01
|
||||||
|
92456pr0098c01: 92241p01c01
|
||||||
|
92456pr0099c01: 92241p01c01
|
||||||
|
92456pr0100c01: 92241p01c01
|
||||||
|
92456pr0101c01: 92241p01c01
|
||||||
|
92456pr0102c01: 92241p01c01
|
||||||
|
92456pr0103c01: 92241p01c01
|
||||||
|
92456pr0104c01: 92241p01c01
|
||||||
|
92456pr0105c01: 92241p01c01
|
||||||
|
92456pr0106c01: 92241p01c01
|
||||||
|
92456pr0107c01: 92241p01c01
|
||||||
|
92456pr0108c01: 92241p01c01
|
||||||
|
92456pr0109c01: 92241p01c01
|
||||||
|
92456pr0110c01: 92241p01c01
|
||||||
|
92456pr0111c01: 92241p01c01
|
||||||
|
92456pr0113c01: 92241p01c01
|
||||||
|
92456pr0114c01: 92241p01c01
|
||||||
|
92456pr0115: 92241p01c01
|
||||||
|
92456pr0116: 92241p01c01
|
||||||
|
92456pr0201: 92241p01c01
|
||||||
|
92456pr0202: 92241p01c01
|
||||||
|
92456pr0203: 92241p01c01
|
||||||
|
92456pr0204: 92241p01c01
|
||||||
|
92456pr0205c01: 92241p01c01
|
||||||
|
92456pr0206: 92241p01c01
|
||||||
|
92456pr0207: 92241p01c01
|
||||||
|
92456pr0207c01: 92241p01c01
|
||||||
|
92456pr0208: 92241p01c01
|
||||||
|
92456pr0209c01: 92241p01c01
|
||||||
|
92456pr0210c01: 92241p01c01
|
||||||
|
92456pr0211c01: 92241p01c01
|
||||||
|
92456pr0212c01: 92241p01c01
|
||||||
|
92456pr0214c01: 92241p01c01
|
||||||
|
92456pr0215c01: 92241p01c01
|
||||||
|
92456pr0216c01: 92241p01c01
|
||||||
|
92456pr0218c01: 92241p01c01
|
||||||
|
92456pr0219c01: 92241p01c01
|
||||||
|
92456prx001: 92241p01c01
|
||||||
|
|
||||||
|
# Duplo Brick 2 x 2 x 2
|
||||||
|
13172: 31110
|
||||||
|
13171: 31110
|
||||||
|
13170: 31110
|
||||||
|
13168: 31110
|
||||||
|
13165: 31110
|
||||||
|
13164: 31110
|
||||||
|
11939: 31110
|
||||||
|
16727: 31110
|
||||||
|
25187: 31110
|
||||||
|
24996: 31110
|
||||||
|
19419: 31110
|
||||||
|
11940: 31110
|
||||||
|
|
||||||
|
# Duplo Brick 2 x 2 x 2 with Curved Top
|
||||||
|
25186: 3664
|
||||||
|
15935: 3664
|
||||||
|
13862: 3664
|
||||||
|
15989: 3664
|
||||||
|
99879: 3664
|
||||||
|
|
||||||
|
3044c: 3044a
|
@ -4,8 +4,9 @@ services:
|
|||||||
|
|
||||||
app.relation.mapper:
|
app.relation.mapper:
|
||||||
class: AppBundle\Util\RelationMapper
|
class: AppBundle\Util\RelationMapper
|
||||||
arguments:
|
calls:
|
||||||
- ['%kernel.root_dir%/Resources/relations']
|
- [ loadResource, ['%kernel.root_dir%/Resources/relations/part_model.yml', 'part_model']]
|
||||||
|
- [ loadResource, ['%kernel.root_dir%/Resources/relations/alias_model.yml', 'alias_model']]
|
||||||
|
|
||||||
app.twig_extension:
|
app.twig_extension:
|
||||||
class: AppBundle\Twig\AppExtension
|
class: AppBundle\Twig\AppExtension
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
namespace AppBundle\Util;
|
namespace AppBundle\Util;
|
||||||
|
|
||||||
use Symfony\Component\Finder\Finder;
|
use AppBundle\Exception\RelationMapper\InvalidResourceException;
|
||||||
|
use AppBundle\Exception\RelationMapper\ResourceNotFoundException;
|
||||||
use Symfony\Component\OptionsResolver\Exception\InvalidArgumentException;
|
use Symfony\Component\OptionsResolver\Exception\InvalidArgumentException;
|
||||||
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
|
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
|
||||||
use Symfony\Component\Translation\Exception\InvalidResourceException;
|
|
||||||
use Symfony\Component\Yaml\Exception\ParseException;
|
use Symfony\Component\Yaml\Exception\ParseException;
|
||||||
use Symfony\Component\Yaml\Yaml;
|
use Symfony\Component\Yaml\Yaml;
|
||||||
|
|
||||||
@ -17,17 +17,24 @@ class RelationMapper
|
|||||||
private $relations;
|
private $relations;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RelationMapper constructor.
|
* Adds a Resource.
|
||||||
*
|
*
|
||||||
* @param $resourcesDir
|
* @param $file
|
||||||
|
* @param $domain
|
||||||
|
*
|
||||||
|
* @throws InvalidResourceException|ResourceNotFoundException
|
||||||
*/
|
*/
|
||||||
public function __construct($resourcesDir)
|
public function loadResource($file, $domain)
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
if (!file_exists($file)) {
|
||||||
$files = $finder->files()->name('*.yml')->in($resourcesDir);
|
throw new ResourceNotFoundException($file);
|
||||||
foreach ($files as $file) {
|
}
|
||||||
$domain = substr($file->getFilename(), 0, -1 * strlen('yml') - 1);
|
|
||||||
$this->loadResource($file, $domain);
|
try {
|
||||||
|
$this->relations[$domain] = [];
|
||||||
|
$this->relations[$domain] = Yaml::parse(file_get_contents($file));
|
||||||
|
} catch (ParseException $e) {
|
||||||
|
throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $file), 0, $e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,20 +55,4 @@ class RelationMapper
|
|||||||
}
|
}
|
||||||
throw new InvalidOptionsException();
|
throw new InvalidOptionsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a Resource.
|
|
||||||
*
|
|
||||||
* @param $file
|
|
||||||
* @param $domain
|
|
||||||
*/
|
|
||||||
private function loadResource($file, $domain)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$this->relations[$domain] = [];
|
|
||||||
$this->relations[$domain] = Yaml::parse(file_get_contents($file->getPathname()));
|
|
||||||
} catch (ParseException $e) {
|
|
||||||
throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $file->getPathname()), 0, $e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -11,46 +11,30 @@ class RelationMapperTest extends TestCase
|
|||||||
{
|
{
|
||||||
public function testLoad()
|
public function testLoad()
|
||||||
{
|
{
|
||||||
$mapper = new RelationMapper(__DIR__.'/fixtures/');
|
$mapper = new RelationMapper();
|
||||||
|
$mapper->loadResource(__DIR__.'/fixtures/resources.yml', 'resources');
|
||||||
|
|
||||||
$this->assertEquals('bar', $mapper->find('foo','resources'));
|
$this->assertEquals('bar', $mapper->find('foo','resources'));
|
||||||
|
$this->assertEquals('bar', $mapper->find('bar','resources'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function testLoadDoesNothingIfEmpty()
|
/**
|
||||||
// {
|
* @expectedException AppBundle\Exception\RelationMapper\ResourceNotFoundException
|
||||||
// $resource = __DIR__.'/fixtures/empty.yml';
|
*/
|
||||||
// $catalogue = Yaml::parse(file_get_contents($resource));
|
public function testLoadNonExistingResource()
|
||||||
//
|
{
|
||||||
// $this->assertEquals(array(), $catalogue);
|
$mapper = new RelationMapper();
|
||||||
// }
|
$resource = __DIR__.'/fixtures/non-existing.yml';
|
||||||
//
|
$mapper->loadResource($resource, 'resources');
|
||||||
// /**
|
}
|
||||||
// * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
|
|
||||||
// */
|
/**
|
||||||
// public function testLoadNonExistingResource()
|
* @expectedException AppBundle\Exception\RelationMapper\InvalidResourceException
|
||||||
// {
|
*/
|
||||||
// $loader = new YamlFileLoader();
|
public function testLoadInvalidResource()
|
||||||
// $resource = __DIR__.'/../fixtures/non-existing.yml';
|
{
|
||||||
// $loader->load($resource, 'en', 'domain1');
|
$mapper = new RelationMapper();
|
||||||
// }
|
$resource = __DIR__.'/fixtures/invalid.yml';
|
||||||
//
|
$mapper->loadResource($resource, 'resources');
|
||||||
// /**
|
}
|
||||||
// * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
|
|
||||||
// */
|
|
||||||
// public function testLoadThrowsAnExceptionIfFileNotLocal()
|
|
||||||
// {
|
|
||||||
// $loader = new YamlFileLoader();
|
|
||||||
// $resource = 'http://example.com/resources.yml';
|
|
||||||
// $loader->load($resource, 'en', 'domain1');
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
|
|
||||||
// */
|
|
||||||
// public function testLoadThrowsAnExceptionIfNotAnArray()
|
|
||||||
// {
|
|
||||||
// $loader = new YamlFileLoader();
|
|
||||||
// $resource = __DIR__.'/../fixtures/non-valid.yml';
|
|
||||||
// $loader->load($resource, 'en', 'domain1');
|
|
||||||
// }
|
|
||||||
}
|
}
|
2
tests/Util/RelationMapper/fixtures/invalid.yml
Normal file
2
tests/Util/RelationMapper/fixtures/invalid.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
foo: bar
|
||||||
|
dsad- da
|
Loading…
x
Reference in New Issue
Block a user