<?php

require_once 'ABaseTest.php';

class KorsupgahTest extends BaseTest
{
    public function testMapGeojsonSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/map_geojson',
                200,
                [],
                "\ntestMapGeojsonSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testMapGeojsonSuccess Failed", $e->getMessage()]);
        }
    }

    public function testSummaryMapSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/summary_map?level=nasional&year=2018',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testSummaryMapSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testSummaryMapSuccess Failed", $e->getMessage()]);
        }
    }

    public function testSummaryIndikatorSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/summary_indikator?year=2018',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testSummaryIndikatorSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testSummaryIndikatorSuccess Failed", $e->getMessage()]);
        }
    }

    public function testCapaianAreaIntervensiSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_area_intervensi',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianAreaIntervensiSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianAreaIntervensiSuccess Failed", $e->getMessage()]);
        }
    }

    public function testCapaianIndikatorSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_area_intervensi?id_area_intervensi=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianIndikatorSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianIndikatorSuccess Failed", $e->getMessage()]);
        }
    }

    public function testCapaianSubIndikatorSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_sub_indikator?id_indikator=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianSubIndikatorSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianSubIndikatorSuccess Failed", $e->getMessage()]);
        }
    }

    public function testCapaianInstansiPerSubIndikatorSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_instansi_per_sub_indikator?id_sub_indikator=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianInstansiPerSubIndikatorSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianInstansiPerSubIndikatorSuccess Failed", $e->getMessage()]);
        }
    }

    public function testProgressPerSubIndikatorInstansiSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/progress_per_sub_indikator_instansi?id_instansi=1&id_sub_indikator=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testProgressPerSubIndikatorInstansiSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testProgressPerSubIndikatorInstansiSuccess Failed", $e->getMessage()]);
        }
    }

    public function testCapaianInstansiPerIndikatorSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_instansi_per_indikator?id_indikator=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianInstansiPerIndikatorSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianInstansiPerIndikatorSuccess Failed", $e->getMessage()]);
        }
    }

    // todo: error class 'KorsupgahController' does not have a method 'progressPerIndikatorInstansi'
//    public function testProgressPerIndikatorInstansiSuccess() {
//        try {
//            $this->doAPIShouldGiveSubsetResponse(
//                'GET',
//                'korsupgah/progress_per_indikator_instansi',
//                200,
//                [
//                    "success" => true,
//                    "data" => []
//                ],
//                "testProgressPerIndikatorInstansiSuccess Passed"
//            );
//        } catch (Exception $e) {
//            self::$messages = array_merge(self::$messages, ["testProgressPerIndikatorInstansiSuccess Failed", $e->getMessage()]);
//        }
//    }

    public function testCapaianInstansiPerAreaIntervensiSuccess() {
        try {
            $this->doAPIShouldGiveSubsetResponse(
                'GET',
                'korsupgah/capaian_instansi_per_area_intervensi?id_area_intervensi=1',
                200,
                [
                    "success" => true,
                    "data" => []
                ],
                "testCapaianInstansiPerAreaIntervensiSuccess Passed"
            );
        } catch (Exception $e) {
            self::$messages = array_merge(self::$messages, ["testCapaianInstansiPerAreaIntervensiSuccess Failed", $e->getMessage()]);
        }
    }

    // todo: error class 'KorsupgahController' does not have a method 'progressPerAreaIntervensiInstansi'
//    public function testProgressPerAreaIntervensiInstansiSuccess() {
//        try {
//            $this->doAPIShouldGiveSubsetResponse(
//                'GET',
//                'korsupgah/progress_per_area_intervensi_instansi',
//                200,
//                [
//                    "success" => true,
//                    "data" => []
//                ],
//                "testProgressPerAreaIntervensiInstansiSuccess Passed"
//            );
//        } catch (Exception $e) {
//            self::$messages = array_merge(self::$messages, ["testProgressPerAreaIntervensiInstansiSuccess Failed", $e->getMessage()]);
//        }
//    }
}
