<?php

require_once 'ABaseTest.php';
class KemenkeuAPBDTest extends BaseTest
{
    const BASE_URL = "kemenkeu-apbd";
    protected $token;

    public function setUp()
    {
        parent::setUp();
        $this->token = $this->doLogin();
    }

    public function doLogin()
    {
        $login = $this->login(getenv("TEST_ADMIN_USERNAME"), getenv("TEST_ADMIN_PASSWORD"));
        $this->assertContains(
            [
                'success' => true
            ],
            $login,
            "login Failed"
        );
        return $login['data']['token'];
    }

    public function testGetWilayahShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSimpleSuccessResponse(
            "GET",
            self::BASE_URL . '/get-wilayah',
            [
                'headers' => [
                    'Authorization' => "Bearer " . $this->token,
                    'Content-Type' => 'application/json'
                ]
            ],
            200,
            "get-wilayah Passed"
        );
    }

    public function testGetSubWilayahShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSimpleSuccessResponse(
            "GET",
            self::BASE_URL . '/get-sub-wilayah',
            [
                'query' => [
                    'kodeprovinsi' => 11
                ],
                'headers' => [
                    'Authorization' => "Bearer " . $this->token,
                    'Content-Type' => 'application/json'
                ]
            ],
            200,
            "get-sub-wilayah Passed"
        );
    }

    public function testGetApbdShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSimpleSuccessResponse(
            "GET",
            self::BASE_URL . '/get-apbd',
            [
                'query' => [
                    'tahun' => 2022,
                    'kodewilayah' => "31.00",
                    'kodesubwilayah' => "31.05",
                    'tipe' => "apbd",
                ],
                'headers' => [
                    'Authorization' => "Bearer " . $this->token,
                    'Content-Type' => 'application/json'
                ]
            ],
            200,
            "get-apbd Passed"
        );
    }
}
