factory->createBuilder(ActivityEditForm::class, $model); $attr = $form->getFormConfig()->getOption('attr'); self::assertArrayHasKey('data-form-event', $attr); self::assertEquals('kimai.activityUpdate', $attr['data-form-event']); self::assertTrue($form->has('name')); self::assertTrue($form->has('comment')); self::assertTrue($form->has('project')); self::assertTrue($form->has('color')); self::assertTrue($form->has('metaFields')); self::assertTrue($form->has('visible')); } public function testWithGlobalNewActivityAndOptions() { $model = new Activity(); $form = $this->factory->createBuilder(ActivityEditForm::class, $model, [ 'include_budget' => true ]); self::assertTrue($form->has('budget')); self::assertTrue($form->has('timeBudget')); } public function testWithGlobalExistingActivityAndOptions() { $model = $this->createMock(Activity::class); $model->expects($this->once())->method('getId')->willReturn(1); $form = $this->factory->createBuilder(ActivityEditForm::class, $model, [ 'include_budget' => true ]); self::assertFalse($form->has('project')); self::assertTrue($form->has('budget')); self::assertTrue($form->has('timeBudget')); } public function testWithNonGlobalExistingActivityAndOptions() { $project = new Project(); $customer = new Customer(); $project->setCustomer($customer); $model = $this->createMock(Activity::class); $model->expects($this->any())->method('getId')->willReturn(1); $model->expects($this->any())->method('getProject')->willReturn($project); $form = $this->factory->createBuilder(ActivityEditForm::class, $model, [ 'include_budget' => true ]); self::assertTrue($form->has('name')); self::assertTrue($form->has('comment')); self::assertTrue($form->has('project')); self::assertTrue($form->has('color')); self::assertTrue($form->has('metaFields')); self::assertTrue($form->has('visible')); self::assertTrue($form->has('project')); self::assertTrue($form->has('budget')); self::assertTrue($form->has('timeBudget')); } }