<?php
$dotenv = new Dotenv\Dotenv(__DIR__ . '/../');
$dotenv->load();

class RumahSakitTest extends BaseTest
{
    const PREFIX = 'kesehatan/rs/';

    public function testListProvinsiShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'list_provinsi', [], 200, "\n\t\t\t".self::PREFIX."list_provinsi Passed");
    }

    public function testSearchShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'search', [], 200, "\n\t\t\t".self::PREFIX."search Passed");
    }

    public function testSearchWithParamShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'search', [
            'query' => [
                'limit' => 10,
                'offset' => 0,
                'provinsi' => 'Jawa Barat',
                'kota' => 'Bogor',
                'nama' => 'RS Umum'
            ]
        ], 200, "\n\t\t\t".self::PREFIX."search with param Passed");
    }

    public function testProfileShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'profile/3276041', [], 200, "\n\t\t\t".self::PREFIX."profile Passed");
    }

    public function testLiveProfileShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'live_profile/3276041', [], 200, "\n\t\t\t".self::PREFIX."live_profile Passed");
    }

    public function testLiveProfileShouldGiveNotFound() {
        $this->doAPIShouldGiveSubsetResponse('GET', self::PREFIX . 'live_profile/3276000', 200,
        [
            'data' => [
                'result' => [
                    'error' => 'Data Tidak Ditemukan'
                ]
            ]
        ], "\t\t\t".self::PREFIX."live_profile not found Passed");
    }

    public function testDetailShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSubsetResponse(
            'GET',
            self::PREFIX . 'detail/3276041',
            200,
            [
                'data' => [
                    'kode' => '3276041'
                ]
            ],
            "\n\t\t\t".self::PREFIX."detail Passed"
        );
    }

    public function testDetailShouldGiveNotFoundResponse() {
        $this->doAPIShouldGiveSubsetResponse(
            'GET',
            self::PREFIX . 'detail/3276000',
            404,
            [
                "success" => false
            ],
            "\t\t\t".self::PREFIX."detail not found Passed"
        );
    }

    public function testKetersediaanShouldGiveSuccessResponse() {
        $this->doAPIShouldGiveSuccessResponse('GET', self::PREFIX . 'ketersediaan/3276041', [], 200, "\n\t\t\t".self::PREFIX."ketersediaan Passed");
    }

    public function testKetersediaanShouldGiveNotFoundResponse() {
        $this->doAPIShouldGiveSubsetResponse(
            'GET',
            self::PREFIX . 'ketersediaan/3276000',
            462,
            [
                "success" => false,
                "message" => "Rumah sakit not found",
            ],
            "\t\t\t".self::PREFIX."ketersediaan not found Passed"
        );
    }
}
