/** * @return array */ public function getArgs() { $path = $this->getTemporaryPath(); $paragraphs = $this->faker->paragraphs(rand(5, 50), true); $this->filesystem->dumpFile($path, $paragraphs); return [$path]; }
/** * @param FactoryInterface $staticContentFactory */ public function __construct(FactoryInterface $staticContentFactory) { $this->staticContentFactory = $staticContentFactory; $this->faker = \Faker\Factory::create(); $this->optionsResolver = (new OptionsResolver())->setDefault('title', function (Options $options) { return $this->faker->words(3, true); })->setDefault('name', function (Options $options) { return StringInflector::nameToCode($options['title']); })->setDefault('body', function (Options $options) { return $this->faker->paragraphs(4, true); })->setDefault('publishable', function (Options $options) { return $this->faker->boolean(90); })->setAllowedTypes('publishable', 'bool'); }
/** * @param FactoryInterface $productFactory * @param FactoryInterface $productVariantFactory * @param ProductVariantGeneratorInterface $variantGenerator * @param FactoryInterface $productAttributeValueFactory * @param FactoryInterface $productImageFactory * @param ImageUploaderInterface $imageUploader * @param SlugGeneratorInterface $slugGenerator * @param RepositoryInterface $taxonRepository * @param RepositoryInterface $productAttributeRepository * @param RepositoryInterface $productOptionRepository * @param RepositoryInterface $channelRepository * @param RepositoryInterface $localeRepository */ public function __construct(FactoryInterface $productFactory, FactoryInterface $productVariantFactory, ProductVariantGeneratorInterface $variantGenerator, FactoryInterface $productAttributeValueFactory, FactoryInterface $productImageFactory, ImageUploaderInterface $imageUploader, SlugGeneratorInterface $slugGenerator, RepositoryInterface $taxonRepository, RepositoryInterface $productAttributeRepository, RepositoryInterface $productOptionRepository, RepositoryInterface $channelRepository, RepositoryInterface $localeRepository) { $this->productFactory = $productFactory; $this->productVariantFactory = $productVariantFactory; $this->variantGenerator = $variantGenerator; $this->productImageFactory = $productImageFactory; $this->imageUploader = $imageUploader; $this->slugGenerator = $slugGenerator; $this->localeRepository = $localeRepository; $this->faker = \Faker\Factory::create(); $this->optionsResolver = (new OptionsResolver())->setDefault('name', function (Options $options) { return $this->faker->words(3, true); })->setDefault('code', function (Options $options) { return StringInflector::nameToCode($options['name']); })->setDefault('enabled', function (Options $options) { return $this->faker->boolean(90); })->setAllowedTypes('enabled', 'bool')->setDefault('short_description', function (Options $options) { return $this->faker->paragraph; })->setDefault('description', function (Options $options) { return $this->faker->paragraphs(3, true); })->setDefault('main_taxon', LazyOption::randomOne($taxonRepository))->setAllowedTypes('main_taxon', ['null', 'string', TaxonInterface::class])->setNormalizer('main_taxon', LazyOption::findOneBy($taxonRepository, 'code'))->setDefault('taxons', LazyOption::randomOnes($taxonRepository, 3))->setAllowedTypes('taxons', 'array')->setNormalizer('taxons', LazyOption::findBy($taxonRepository, 'code'))->setDefault('channels', LazyOption::randomOnes($channelRepository, 3))->setAllowedTypes('channels', 'array')->setNormalizer('channels', LazyOption::findBy($channelRepository, 'code'))->setDefault('product_attributes', [])->setAllowedTypes('product_attributes', 'array')->setNormalizer('product_attributes', function (Options $options, array $productAttributes) use($productAttributeRepository, $productAttributeValueFactory) { $productAttributesValues = []; foreach ($productAttributes as $code => $value) { /** @var ProductAttributeInterface $productAttribute */ $productAttribute = $productAttributeRepository->findOneBy(['code' => $code]); Assert::notNull($productAttribute); /** @var ProductAttributeValueInterface $productAttributeValue */ $productAttributeValue = $productAttributeValueFactory->createNew(); $productAttributeValue->setAttribute($productAttribute); $productAttributeValue->setValue($value ?: $this->getRandomValueForProductAttribute($productAttribute)); $productAttributesValues[] = $productAttributeValue; } return $productAttributesValues; })->setDefault('product_options', [])->setAllowedTypes('product_options', 'array')->setNormalizer('product_options', LazyOption::findBy($productOptionRepository, 'code'))->setDefault('images', [])->setAllowedTypes('images', 'array'); }
/** * {@inheritdoc} */ protected function configureOptions(OptionsResolver $resolver) { $resolver->setDefault('name', function (Options $options) { return $this->faker->words(3, true); })->setDefault('code', function (Options $options) { return StringInflector::nameToCode($options['name']); })->setDefault('enabled', function (Options $options) { return $this->faker->boolean(90); })->setAllowedTypes('enabled', 'bool')->setDefault('short_description', function (Options $options) { return $this->faker->paragraph; })->setDefault('description', function (Options $options) { return $this->faker->paragraphs(3, true); })->setDefault('main_taxon', LazyOption::randomOne($this->taxonRepository))->setAllowedTypes('main_taxon', ['null', 'string', TaxonInterface::class])->setNormalizer('main_taxon', LazyOption::findOneBy($this->taxonRepository, 'code'))->setDefault('taxons', LazyOption::randomOnes($this->taxonRepository, 3))->setAllowedTypes('taxons', 'array')->setNormalizer('taxons', LazyOption::findBy($this->taxonRepository, 'code'))->setDefault('channels', LazyOption::randomOnes($this->channelRepository, 3))->setAllowedTypes('channels', 'array')->setNormalizer('channels', LazyOption::findBy($this->channelRepository, 'code'))->setDefault('variant_selection_method', ProductInterface::VARIANT_SELECTION_MATCH)->setAllowedValues('variant_selection_method', [ProductInterface::VARIANT_SELECTION_MATCH, ProductInterface::VARIANT_SELECTION_CHOICE])->setDefault('product_attributes', [])->setAllowedTypes('product_attributes', 'array')->setNormalizer('product_attributes', function (Options $options, array $productAttributes) { $productAttributesValues = []; foreach ($productAttributes as $code => $value) { /** @var ProductAttributeInterface $productAttribute */ $productAttribute = $this->productAttributeRepository->findOneBy(['code' => $code]); Assert::notNull($productAttribute); /** @var ProductAttributeValueInterface $productAttributeValue */ $productAttributeValue = $this->productAttributeValueFactory->createNew(); $productAttributeValue->setAttribute($productAttribute); $productAttributeValue->setValue($value ?: $this->getRandomValueForProductAttribute($productAttribute)); $productAttributesValues[] = $productAttributeValue; } return $productAttributesValues; })->setDefault('product_options', [])->setAllowedTypes('product_options', 'array')->setNormalizer('product_options', LazyOption::findBy($this->productOptionRepository, 'code'))->setDefault('images', [])->setAllowedTypes('images', 'array'); }
/** * Create a random ProjectPhaseDocument. * * @param int VisualAppeal\Connect\ProjectPhase $projectPhase (Default: null, newly created) * * @return VisualAppeal\Connect\ProjectPhaseDocument */ public function createProjectPhaseDocument($projectPhase = null) { $projectPhase = $projectPhase ?: $this->createProjectPhase(); return \VisualAppeal\Connect\ProjectPhaseDocument::create(['project_phase_id' => $projectPhase->id, 'title' => implode(' ', $this->faker->words(4)), 'content' => implode("\n", $this->faker->paragraphs(3)), 'type' => 'published']); }