Пример #1
0
 /** @test */
 public function mycelium_destroys_pointers()
 {
     // Scenario:
     // Destroy new unsaved pointer
     $pointer = Mycelium::createPointer("gds.one", "gds.foo");
     $this->assertFalse($pointer->destroyed());
     $this->assertTrue(Mycelium::has("gds.one"));
     $pointer->destroy();
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.one"));
     // Scenario:
     // Destroy already saved pointer and see it disappearing from database after saving
     $pointer = Mycelium::createPointer("gds.two", "gds.foo");
     Mycelium::save();
     $pointerIdAfterSaving = $pointer->id();
     $this->seeInDatabase("myc_pointers", ["id" => $pointerIdAfterSaving]);
     $pointer->destroy();
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.two"));
     Mycelium::save();
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.two"));
     $this->assertEquals(0, DB::table("myc_pointers")->where("id", $pointerIdAfterSaving)->count());
     // Scenario:
     // Destroy new pointer via Mycelium::remove
     $pointer = Mycelium::createPointer("gds.three", "gds.foo");
     Mycelium::remove("gds.three");
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.three"));
     // Scenario:
     // Destroy already saved pointer via Mycelium::remove
     $pointer = Mycelium::createPointer("gds.four", "gds.foo");
     Mycelium::save();
     $pointerIdAfterSaving = $pointer->id();
     Mycelium::remove("gds.four");
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.four"));
     Mycelium::save();
     $this->assertTrue($pointer->destroyed());
     $this->assertFalse(Mycelium::has("gds.four"));
     $this->assertEquals(0, DB::table("myc_pointers")->where("id", $pointerIdAfterSaving)->count());
 }