From a650fa51f78ff17799055672ad1eee41383fd0e8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 28 Jun 2015 16:41:12 +0200 Subject: [PATCH] Implemented bill chart JS test. --- .../ChartJsBillChartGeneratorTest.php | 60 ++++++++++++++++++- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/tests/generators/ChartJsBillChartGeneratorTest.php b/tests/generators/ChartJsBillChartGeneratorTest.php index 6c58c0ce3d..53cdb49c69 100644 --- a/tests/generators/ChartJsBillChartGeneratorTest.php +++ b/tests/generators/ChartJsBillChartGeneratorTest.php @@ -1,4 +1,8 @@ object = new ChartJsBillChartGenerator(); + + } /** @@ -31,7 +41,31 @@ class ChartJsBillChartGeneratorTest extends TestCase */ public function testFrontpage() { - $this->markTestIncomplete(); + // to test frontpage, we generate the exact fake entries + // needed: + $paid = new Collection; + for ($i = 0; $i < 5; $i++) { + $obj = new stdClass(); + $obj->description = 'Something'; + $obj->amount = 100; + $paid->push($obj); + } + + $unpaid = new Collection; + $sum = 0; + for ($i = 0; $i < 5; $i++) { + $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); + $date = new Carbon; + $sum += (($bill->amount_max + $bill->amount_min) / 2); + $unpaid->push([$bill, $date]); + } + + + $data = $this->object->frontpage($paid, $unpaid); + + $this->assertCount(2, $data); + $this->assertEquals($sum, $data[0]['value']); + $this->assertEquals(500, $data[1]['value']); } /** @@ -39,6 +73,28 @@ class ChartJsBillChartGeneratorTest extends TestCase */ public function testSingle() { - $this->markTestIncomplete(); + + $preference = FactoryMuffin::create('FireflyIII\Models\Preference'); + $preference->data = 'en'; + $preference->save(); + + // mock language preference: + Preferences::shouldReceive('get')->withArgs(['language', 'en'])->andReturn($preference); + + $bill = FactoryMuffin::create('FireflyIII\Models\Bill'); + $entries = new Collection; + for ($i = 0; $i < 5; $i++) { + $obj = new stdClass; + $obj->amount = 100; + $obj->date = new Carbon; + $entries->push($obj); + } + $data = $this->object->single($bill, $entries); + + $this->assertCount(5, $data['labels']); + $this->assertCount(5, $data['datasets'][1]['data']); + $this->assertEquals(100, $data['datasets'][1]['data'][0]); // see if first is equal. + + } } \ No newline at end of file