diff --git a/Entity/Person.php b/Entity/Person.php
index 947963c9e..aa546d364 100644
--- a/Entity/Person.php
+++ b/Entity/Person.php
@@ -84,7 +84,7 @@ class Person {
$opening = new \DateTime();
}
- $this->open($opening);
+ $this->open(new PersonHistoryFile($opening));
}
diff --git a/Tests/Controller/HistoryControllerTest.php b/Tests/Controller/HistoryControllerTest.php
deleted file mode 100644
index 32d401b31..000000000
--- a/Tests/Controller/HistoryControllerTest.php
+++ /dev/null
@@ -1,182 +0,0 @@
-setDateClosing($datetime2);
-
-
- $r = $history->isClosingAfterOpening();
-
- $this->assertTrue($r);
- }
-
- public function testClosingIsBeforeOpeningConsistency() {
- $datetime1 = new \DateTime('tomorrow');
-
-
- $history = new PersonHistoryFile($datetime1);
-
-
- $datetime2 = new \DateTime('now');
-
- $history->setDateClosing($datetime2);
-
- $this->assertFalse($history->isClosingAfterOpening());
- }
-
- public function testClosingEqualOpening() {
- $datetime = new \DateTime('now');
-
- $history = new PersonHistoryFile($datetime);
- $history->setDateClosing($datetime);
-
- $this->assertTrue($history->isClosingAfterOpening());
- }
-
- public function testIsOpen() {
- $history = new PersonHistoryFile(new \DateTime());
-
- $this->assertTrue($history->isOpen());
- }
-
- public function testIsClosed() {
- $history = new PersonHistoryFile(new \DateTime());
-
- $history->setDateClosing(new \DateTime('tomorrow'));
-
- $this->assertFalse($history->isOpen());
- }
-
- public function testHistoryOrderWithUnorderedHistory() {
- $d = new \DateTime(); $d->setDate(2013, 2, 1);
- $p = new Person($d);
-
- $e = new \DateTime(); $e->setDate(2013,3,1);
- $p->close($e, null);
-
- $f = new \DateTime(); $f->setDate(2013, 1, 1);
- $p->open($f);
-
- $g = new \DateTime(); $g->setDate(2013, 4, 1);
- $p->close($g, null);
-
- $r = $p->getHistoriesOrdered();
-
- $date = $r[0]->getDateOpening()->format('Y-m-d');
-
-
- $this->assertEquals($date, '2013-01-01');
- }
-
-
- public function testHistoryOrderSameDateOpening() {
- $d = new \DateTime(); $d->setDate(2013, 2, 1);
- $p = new Person($d);
-
- $e = new \DateTime(); $e->setDate(2013, 3, 1);
- $p->close($e, null);
-
- $f = new \DateTime(); $f->setDate(2013, 2, 1);
- $p->open($f);
-
- $g = new \DateTime(); $g->setDate(2013, 4, 1);
- $p->close($g, null);
-
- $r = $p->getHistoriesOrdered();
-
- $date = $r[0]->getDateClosing()->format('Y-m-d');
-
-
- $this->assertEquals($date, '2013-03-01');
- }
-
- public function testDateCoveringWithCoveringHistory() {
- $d = new \DateTime(); $d->setDate(2013, 2, 1);
- $p = new Person($d);
-
- $e = new \DateTime(); $e->setDate(2013,3,1);
- $p->close($e, null);
-
- $f = new \DateTime(); $f->setDate(2013, 1, 1);
- $p->open($f);
-
- $g = new \DateTime(); $g->setDate(2013, 4, 1);
- $p->close($g, null);
-
- $r = $p->checkHistoryIsNotCovering();
-
- $this->assertEquals($r['result'], Person::ERROR_OPENING_IS_INSIDE_CLOSING);
- }
-
-
-
- public function testNotOpenAFileReOpenedLater() {
- $d = new \DateTime(); $d->setDate(2013, 2, 1);
- $p = new Person($d);
-
- $e = new \DateTime(); $e->setDate(2013, 3, 1);
- $p->close($e, null);
-
- $f = new \DateTime(); $f->setDate(2013, 1, 1);
- $p->open($f);
-
-
-
- $r = $p->checkHistoryIsNotCovering();
-
- var_dump($r);
-
- $this->assertEquals($r['result'], Person::ERROR_OPENING_NOT_CLOSED_IS_BEFORE_NEW_LINE);
- }
-
-
-
-
-
-
- public function testOrder() {
- $d = new \DateTime(); $d->setDate(2013, 2, 1);
- $g = new \DateTime(); $g->setDate(2013, 4, 1);
- $f = new \DateTime(); $f->setDate(2013, 1, 1);
- $e = new \DateTime(); $e->setDate(2013,3,1);
-
- $a = array($d, $g, $f, $e);
-
-
- usort($a, function($a, $b) {
- if ($a === $b) {
- return 0;
- }
-
- if ($a < $b) {
- return -1;
- } else {
- return 1;
- }
- });
-
-
- $date = $a[0]->format('Y-m-d');
-
- $this->assertEquals($date, '2013-01-01');
-
- }
-
-
-
-}
diff --git a/Tests/Controller/PersonControllerTest.php b/Tests/Controller/PersonControllerTest.php
index b914270ac..0154ce5d8 100644
--- a/Tests/Controller/PersonControllerTest.php
+++ b/Tests/Controller/PersonControllerTest.php
@@ -6,11 +6,9 @@ use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class PersonControllerTest extends WebTestCase
{
- public function testSee()
+ public function testFoo()
{
- $client = static::createClient();
- $crawler = $client->request('GET', '/see');
}
}
diff --git a/Tests/Entity/HistoryFileTest.php b/Tests/Entity/HistoryFileTest.php
new file mode 100644
index 000000000..095a3cf6a
--- /dev/null
+++ b/Tests/Entity/HistoryFileTest.php
@@ -0,0 +1,103 @@
+setDateClosing($datetime2);
+
+
+ $r = $history->isClosingAfterOpening();
+
+ $this->assertTrue($r);
+ }
+
+ public function testClosingIsBeforeOpeningConsistency() {
+ $datetime1 = new \DateTime('tomorrow');
+
+
+ $history = new PersonHistoryFile($datetime1);
+
+
+ $datetime2 = new \DateTime('now');
+
+ $history->setDateClosing($datetime2);
+
+ $this->assertFalse($history->isClosingAfterOpening());
+ }
+
+ public function testClosingEqualOpening() {
+ $datetime = new \DateTime('now');
+
+ $history = new PersonHistoryFile($datetime);
+ $history->setDateClosing($datetime);
+
+ $this->assertTrue($history->isClosingAfterOpening());
+ }
+
+ public function testIsOpen() {
+ $history = new PersonHistoryFile(new \DateTime());
+
+ $this->assertTrue($history->isOpen());
+ }
+
+ public function testIsClosed() {
+ $history = new PersonHistoryFile(new \DateTime());
+
+ $history->setDateClosing(new \DateTime('tomorrow'));
+
+ $this->assertFalse($history->isOpen());
+ }
+
+
+
+
+
+
+
+ /**
+ * This test seems only to test ordering datetime... Maybe delete ?
+ */
+ public function testOrder() {
+ $d = new \DateTime(); $d->setDate(2013, 2, 1);
+ $g = new \DateTime(); $g->setDate(2013, 4, 1);
+ $f = new \DateTime(); $f->setDate(2013, 1, 1);
+ $e = new \DateTime(); $e->setDate(2013,3,1);
+
+ $a = array($d, $g, $f, $e);
+
+
+ usort($a, function($a, $b) {
+ if ($a === $b) {
+ return 0;
+ }
+
+ if ($a < $b) {
+ return -1;
+ } else {
+ return 1;
+ }
+ });
+
+
+ $date = $a[0]->format('Y-m-d');
+
+ $this->assertEquals($date, '2013-01-01');
+
+ }
+
+
+
+}
diff --git a/Tests/Entity/PersonTest.php b/Tests/Entity/PersonTest.php
new file mode 100644
index 000000000..f2b721af9
--- /dev/null
+++ b/Tests/Entity/PersonTest.php
@@ -0,0 +1,152 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+namespace Chill\PersonBundle\Tests\Entity;
+
+use Chill\PersonBundle\Entity\Person;
+use Chill\PersonBundle\Entity\PersonHistoryFile;
+
+/**
+ * Unit tests on person
+ *
+ * @author Julien Fastré
+ */
+class PersonTest extends \PHPUnit_Framework_TestCase
+{
+ public function testGetCurrentHistory()
+ {
+ $d = new \DateTime('yesterday');
+ $p = new Person($d);
+
+ $history = $p->getCurrentHistory();
+
+ $this->assertInstanceOf('Chill\PersonBundle\Entity\PersonHistoryFile', $history);
+ $this->assertTrue($history->isOpen());
+ $this->assertEquals($d, $history->getDateOpening());
+
+ //close and test
+ $history->setDateClosing(new \DateTime('tomorrow'));
+
+ $shouldBeNull = $p->getCurrentHistory();
+ $this->assertNull($shouldBeNull);
+
+ }
+
+ public function testHistoryOrderWithUnorderedHistory() {
+ $d = new \DateTime();
+ $d->setDate(2013, 2, 1);
+ $p = new Person($d);
+
+ $e = new \DateTime();
+ $e->setDate(2013, 3, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($e);
+ $p->close($history);
+
+ $f = new \DateTime();
+ $f->setDate(2013, 1, 1);
+ $p->open(new PersonHistoryFile($f));
+
+ $g = new \DateTime();
+ $g->setDate(2013, 4, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($g);
+ $p->close($history);
+
+ $r = $p->getHistoriesOrdered();
+
+ $date = $r[0]->getDateOpening()->format('Y-m-d');
+
+
+ $this->assertEquals($date, '2013-01-01');
+ }
+
+
+ public function testHistoryOrderSameDateOpening() {
+ $d = new \DateTime();
+ $d->setDate(2013, 2, 1);
+ $p = new Person($d);
+
+ $e = new \DateTime();
+ $e->setDate(2013, 3, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($e);
+ $p->close($history);
+
+ $f = new \DateTime();
+ $f->setDate(2013, 2, 1);
+ $p->open(new PersonHistoryFile($f));
+
+ $g = new \DateTime();
+ $g->setDate(2013, 4, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($g);
+ $p->close($history);
+
+ $r = $p->getHistoriesOrdered();
+
+ $date = $r[0]->getDateClosing()->format('Y-m-d');
+
+
+ $this->assertEquals($date, '2013-03-01');
+ }
+
+ public function testDateCoveringWithCoveringHistory() {
+ $d = new \DateTime();
+ $d->setDate(2013, 2, 1);
+ $p = new Person($d);
+
+ $e = new \DateTime();
+ $e->setDate(2013, 3, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($e);
+ $p->close($history);
+
+ $f = new \DateTime();
+ $f->setDate(2013, 1, 1);
+ $p->open(new PersonHistoryFile($f));
+
+ $g = new \DateTime();
+ $g->setDate(2013, 4, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($g);
+ $p->close($history);
+
+ $r = $p->checkHistoryIsNotCovering();
+
+ $this->assertEquals($r['result'], Person::ERROR_OPENING_IS_INSIDE_CLOSING);
+ }
+
+
+
+ public function testNotOpenAFileReOpenedLater() {
+ $d = new \DateTime();
+ $d->setDate(2013, 2, 1);
+ $p = new Person($d);
+
+ $e = new \DateTime();
+ $e->setDate(2013, 3, 1);
+ $history = $p->getCurrentHistory()->setDateClosing($e);
+ $p->close($history);
+
+ $f = new \DateTime();
+ $f->setDate(2013, 1, 1);
+ $p->open(new PersonHistoryFile($f));
+
+
+ $r = $p->checkHistoryIsNotCovering();
+
+ $this->assertEquals($r['result'], Person::ERROR_OPENING_NOT_CLOSED_IS_BEFORE_NEW_LINE);
+ }
+}
diff --git a/Tests/bootstrap.php b/Tests/bootstrap.php
new file mode 100644
index 000000000..9211155e5
--- /dev/null
+++ b/Tests/bootstrap.php
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+ ./Tests
+
+
+
+
+ ./
+
+ ./Resources
+ ./Tests
+ ./vendor
+
+
+
+
+
+
+
\ No newline at end of file