php-juicer/tests/Recipe/RecipeTest.php

57 lines
1.7 KiB
PHP

<?php
namespace NoccyLabs\Juicer\Recipe;
use NoccyLabs\Juicer\Ingredient\Ingredient;
class RecipeTest extends \PhpUnit\Framework\TestCase
{
public function testCreatingAndModifyingRecipes()
{
$recipe = new Recipe();
$recipe->setRecipeName("foo");
$recipe->setRecipeAuthor("bar");
$ingredient1 = new Ingredient("Ingredient 1");
$ingredient2 = new Ingredient("Ingredient 2");
$recipe->addIngredient($ingredient1);
$recipe->addIngredient($ingredient2);
$this->assertInstanceOf(Recipe::class, $recipe);
$this->assertEquals("foo", $recipe->getRecipeName());
$this->assertEquals("bar", $recipe->getRecipeAuthor());
$this->assertEquals([$ingredient1, $ingredient2], $recipe->getIngredients());
}
public function testManipulatingRecipeTags()
{
$recipe = new Recipe();
$recipe
->addTag("foo")
->addTag("bar");
$this->assertCount(2, $recipe->getTags());
$this->assertTrue($recipe->hasTag("foo"));
$this->assertTrue($recipe->hasTag("bar"));
$recipe->removeTag("foo");
$this->assertCount(1, $recipe->getTags());
$this->assertTrue($recipe->hasTag("bar"));
$recipe->addTag("baz");
$this->assertCount(2, $recipe->getTags());
$this->assertFalse($recipe->hasTag("foo"));
$this->assertTrue($recipe->hasTag("bar"));
$this->assertTrue($recipe->hasTag("baz"));
$recipe->setTags(["baz"]);
$this->assertCount(1, $recipe->getTags());
$this->assertFalse($recipe->hasTag("foo"));
$this->assertFalse($recipe->hasTag("bar"));
$this->assertTrue($recipe->hasTag("baz"));
}
}