Roomify\Bat\Test\ConstraintTest::testConstraintManager5 PHP Method

testConstraintManager5() public method

    public function testConstraintManager5()
    {
        $u1 = new Unit(1, 10, array());
        $u2 = new Unit(2, 10, array());
        $units = array($u1, $u2);
        $sd = new \DateTime('2016-02-11 00:00');
        $ed = new \DateTime('2017-01-01 00:00');
        $sd1 = new \DateTime('2016-02-01 00:00');
        $ed1 = new \DateTime('2016-04-01 00:00');
        $sd2 = new \DateTime('2016-03-01 00:00');
        $ed2 = new \DateTime('2016-03-10 00:00');
        $constraints = array();
        $constraints[] = new CheckInDayConstraint(array($u1, $u2), 3, $sd, $ed);
        $constraints[] = new CheckInDayConstraint(array($u1, $u2), 4, $sd1, $ed1);
        $constraints[] = new CheckInDayConstraint(array($u1, $u2), 5, $sd2, $ed2);
        $constraint_manager = new ConstraintManager($constraints);
        $normalized_constraints = $constraint_manager->normalizeConstraints('Roomify\\Bat\\Constraint\\CheckInDayConstraint');
        $this->assertEquals(count($constraints), 3);
        $this->assertEquals(count($normalized_constraints), 4);
        $this->assertEquals($normalized_constraints[0]->getCheckinDay(), '5');
        $this->assertEquals($normalized_constraints[1]->getCheckinDay(), '4');
        $this->assertEquals($normalized_constraints[2]->getCheckinDay(), '4');
        $this->assertEquals($normalized_constraints[3]->getCheckinDay(), '3');
        $this->assertEquals($normalized_constraints[0]->getStartDate()->format('Y-m-d'), '2016-03-01');
        $this->assertEquals($normalized_constraints[0]->getEndDate()->format('Y-m-d'), '2016-03-10');
        $this->assertEquals($normalized_constraints[1]->getStartDate()->format('Y-m-d'), '2016-03-11');
        $this->assertEquals($normalized_constraints[1]->getEndDate()->format('Y-m-d'), '2016-04-01');
        $this->assertEquals($normalized_constraints[2]->getStartDate()->format('Y-m-d'), '2016-02-01');
        $this->assertEquals($normalized_constraints[2]->getEndDate()->format('Y-m-d'), '2016-02-29');
        $this->assertEquals($normalized_constraints[3]->getStartDate()->format('Y-m-d'), '2016-04-02');
        $this->assertEquals($normalized_constraints[3]->getEndDate()->format('Y-m-d'), '2017-01-01');
    }