public function testReverseSubtractionWeek() { $dateTime = new \DateTime('now', new \DateTimeZone('UTC')); // Needed because Oro\Bundle\FilterBundle\Expression\Date\ExpressionResult changes first day of week $dateTime->modify('this week'); $expression = new ExpressionResult(200); $expressionModify = new ExpressionResult(new Token(Token::TYPE_VARIABLE, DateModifierInterface::VAR_THIS_WEEK)); $expression->subtract($expressionModify); $result = $expression->getValue(); $expectedWeek = 200 - (int) $dateTime->format('W'); $this->assertSame($expectedWeek, (int) $result); }
/** * @dataProvider provider */ public function testReverseStartOfSmthModifier($day, $toTime) { $dateTime = new \DateTime('now', new \DateTimeZone('UTC')); $expressionModify = new ExpressionResult(new Token(Token::TYPE_VARIABLE, $day)); $expression = new ExpressionResult(33); $expression->subtract($expressionModify); $result = $expression->getValue(); $expectedDay = 33 - date('d', strtotime($toTime)); $this->assertSame($expectedDay, (int) $result); $expression = new ExpressionResult(1); $expression->add($expressionModify); $result = $expression->getValue(); $expectedDay = 1 + date('d', strtotime($toTime)); $this->assertSame($expectedDay, $result->day); }