/** * @covers Jam_Price::in */ public function test_in() { $monetary = new OpenBuildings\Monetary\Monetary('GBP', new OpenBuildings\Monetary\Source_Static()); $price1 = new Jam_Price(13.234, 'GBP', $monetary); $price2 = new Jam_Price(8.5, 'EUR', $monetary); $price3 = new Jam_Price(8.534000000000001, 'EUR', $monetary, 'GBP', TRUE); $this->assertSame(13.234, $price1->in('GBP')); $this->assertSame(8.5, $price2->in('EUR')); $this->assertSame(7.137025, $price2->in('GBP')); $this->assertSame(11.31945, $price2->in('USD')); $price1 = new Jam_Price(13.234, 'GBP'); $this->assertNotEquals($price1->monetary(), $monetary); $this->assertSame(13.234, $price1->in('GBP', $monetary)); $price1->display_currency('EUR'); $this->assertSame(13.234, $price1->in(NULL, $monetary)); $this->assertEquals(8, $price3->in('GBP'), 'Should ceil on convert'); }