@@ -396,6 +396,114 @@ public function testGetPackagesFromConfig()
396396 $ this ->assertContains ('pimple/pimple ' , $ sut ->getPackages ());
397397 }
398398
399+
400+ public function testGetOldSyntaxExcludePackagesFromPrefixing ()
401+ {
402+ $ this ->markTestSkipped ('Currently needs a reflectable property in the target object ' );
403+
404+ $ composerExtraStraussJson = <<<'EOD'
405+ {
406+ "name": "brianhenryie/strauss-config-test",
407+ "extra": {
408+ "strauss": {
409+ "exclude_prefix_packages": [
410+ "psr/container"
411+ ]
412+ }
413+ }
414+ }
415+
416+ EOD;
417+ $ tmpfname = tempnam (sys_get_temp_dir (), 'strauss-test- ' );
418+ file_put_contents ($ tmpfname , $ composerExtraStraussJson );
419+
420+ $ composer = Factory::create (new NullIO (), $ tmpfname );
421+
422+ $ sut = new StraussConfig ($ composer );
423+
424+ $ this ->assertContains ('psr/container ' , $ sut ->getExcludePackagesFromPrefixing ());
425+ }
426+
427+
428+ public function testGetExcludePackagesFromPrefixing ()
429+ {
430+
431+ $ composerExtraStraussJson = <<<'EOD'
432+ {
433+ "name": "brianhenryie/strauss-config-test",
434+ "extra": {
435+ "strauss": {
436+ "exclude_from_prefix": {
437+ "packages": [
438+ "psr/container"
439+ ]
440+ }
441+ }
442+ }
443+ }
444+
445+ EOD;
446+ $ tmpfname = tempnam (sys_get_temp_dir (), 'strauss-test- ' );
447+ file_put_contents ($ tmpfname , $ composerExtraStraussJson );
448+
449+ $ composer = Factory::create (new NullIO (), $ tmpfname );
450+
451+ $ sut = new StraussConfig ($ composer );
452+
453+ $ this ->assertContains ('psr/container ' , $ sut ->getExcludePackagesFromPrefixing ());
454+ }
455+
456+
457+ public function testGetExcludeFilePatternsFromPrefixingDefault ()
458+ {
459+
460+ $ composerExtraStraussJson = <<<'EOD'
461+ {
462+ "name": "brianhenryie/strauss-config-test"
463+ }
464+
465+ EOD;
466+ $ tmpfname = tempnam (sys_get_temp_dir (), 'strauss-test- ' );
467+ file_put_contents ($ tmpfname , $ composerExtraStraussJson );
468+
469+ $ composer = Factory::create (new NullIO (), $ tmpfname );
470+
471+ $ sut = new StraussConfig ($ composer );
472+
473+ $ this ->assertContains ('/^psr.*$/ ' , $ sut ->getExcludeFilePatternsFromPrefixing ());
474+ }
475+
476+ /**
477+ * When excluding a package, the default file pattern exclusion was being forgotten.
478+ *
479+ * @see https://github.com/BrianHenryIE/strauss/issues/32
480+ */
481+ public function testGetExcludeFilePatternsFromPrefixingDefaultAfterExcludingPackages ()
482+ {
483+
484+ $ composerExtraStraussJson = <<<'EOD'
485+ {
486+ "name": "brianhenryie/strauss-config-test",
487+ "extra": {
488+ "strauss": {
489+ "exclude_from_prefix": {
490+ "packages": ["yahnis-elsts/plugin-update-checker","erusev/parsedown"]
491+ }
492+ }
493+ }
494+ }
495+
496+ EOD;
497+ $ tmpfname = tempnam (sys_get_temp_dir (), 'strauss-test- ' );
498+ file_put_contents ($ tmpfname , $ composerExtraStraussJson );
499+
500+ $ composer = Factory::create (new NullIO (), $ tmpfname );
501+
502+ $ sut = new StraussConfig ($ composer );
503+
504+ $ this ->assertContains ('/^psr.*$/ ' , $ sut ->getExcludeFilePatternsFromPrefixing ());
505+ }
506+
399507 /**
400508 * When Strauss config has no packages specified, use composer.json's require list.
401509 */
0 commit comments