public function testRenderFieldWithPrimitives() { $spec = (new FormSpec())->withFieldType('first_name', Boa::string())->withFieldType('last_name', Boa::string())->withFieldDefault('first_name', 'Bob')->withFieldType('age', Boa::integer())->withFieldType('focus', Boa::boolean())->withFieldType('awesome', Boa::boolean())->withFieldDefault('awesome', true)->withFieldType('price', Boa::float()); $presenter = new FormSpecPresenter($spec); $this->assertEquals((new Input(['id' => 'first_name', 'class' => 'form-control', 'type' => 'text', 'value' => 'Bob']))->render(), $presenter->renderField('first_name')->render()); $this->assertEquals((new Input(['id' => 'last_name', 'class' => 'form-control', 'type' => 'text']))->render(), $presenter->renderField('last_name')->render()); $this->assertEquals((new Input(['id' => 'age', 'class' => 'form-control', 'type' => 'number']))->render(), $presenter->renderField('age')->render()); $this->assertEquals((new Input(['id' => 'focus', 'class' => 'form-control', 'type' => 'checkbox']))->render(), $presenter->renderField('focus')->render()); $this->assertEquals((new Input(['id' => 'awesome', 'class' => 'form-control', 'type' => 'checkbox', 'checked' => null]))->render(), $presenter->renderField('awesome')->render()); $this->assertEquals((new Input(['id' => 'price', 'class' => 'form-control', 'type' => 'number']))->render(), $presenter->renderField('price')->render()); }
/** * Call the fees endpoint of the Research API and return the response. * * @param string $asin * @param float $price * * @return FeesResponse */ public function getFees($asin, $price) { Arguments::contain(Boa::string(), Boa::float())->check($asin, $price); return (new FeesResponseFactory())->makeFromResponse($this->client->get(vsprintf('/v1/fees/%s', [$asin]), ['query' => ['price' => $price]])); }
/** * Check if a value is between two other values. * * @param int|float $min * @param int|float $max * @param int|float $value * * @throws LackOfCoffeeException * @return bool */ public static function within($min, $max, $value) { Arguments::define(Boa::either(Boa::integer(), Boa::float()), Boa::either(Boa::integer(), Boa::float()), Boa::either(Boa::integer(), Boa::float()))->check($min, $max, $value); if ($min > $max) { throw new LackOfCoffeeException('Max value is less than the min value.'); } return $min <= $value && $max >= $value; }