<?php

require_once "ABaseTest.php";
class DesaTest extends BaseTest
{
    public function testListProvinsiSuccess()
    {
        $result = $this->doAPIListShouldSuccess('desa/list_provinsi', []);
        return $result['data']['result'];
    }

    /**
     * @depends testListProvinsiSuccess
     * @param $data
     * @return mixed row desa
     */
    public function testSearch($data)
    {
        $keyword = $data[rand(0, sizeof($data) - 1)];
        $request = $this->doAPIListShouldSuccess('desa/search?provinsi=' . $keyword, []);
        $response = $request['data']['result'];
        $test = $response[rand(0, sizeof($response) - 1)];
        $this->assertEquals($keyword, $test['provinsi']);

        return $test;
    }

    /**
     * @depends testSearch
     * @param $desa
     */
    public function testProfile($desa)
    {
        return $this->doAPIListShouldSuccess('desa/profile?kode=' . $desa['id'], []);
    }

    /**
     * @depends testSearch
     * @param $desa
     */
    public function testDetail($desa)
    {
        $this->doAPIListShouldSuccess('desa/profile?kode=' . $desa['id']);
    }

    /**
     * @depends testSearch
     * @param $desa
     */
    public function testDetilAnggaran($desa)
    {
        $this->doAPIListShouldSuccess('desa/detil_anggaran?kode=' . $desa['id'] . '&tahun=2020');
    }

    /**
     * @depends testSearch
     * @param $desa
     */
    public function testDetailPenduduk($desa)
    {
        $this->doAPIListShouldSuccess('desa/detail_penduduk/' . $desa['id']);
    }

    public function testAnggaranNasional()
    {
        $url = 'desa/anggaran-nasional';
        $request = $this->client->request(
            'GET',
            $url
        );
        $response = \GuzzleHttp\json_decode($request->getBody(), true)['data'];
        $this->assertArrayHasKey('anggaran', $response);
        $this->assertArrayHasKey('kesejahteraan', $response);
        self::$messages = array_merge(self::$messages, [$url . " passed"]);
    }
}
