<?php
/**
 * Created by PhpStorm.
 * User: oriol
 * Date: 21/04/16
 * Time: 09:29
 */

namespace tests\controllers;

use App\Http\Controllers\NewAccesController;
use App\Acces;

class ANewAccesControllerTest extends \TestCase
{
    public function testNewAccesControllerCanBeCreated()
    {
        $NewAccesController = new NewAccesController();
    }

    /**
     *S'envia el json corresponent amb el que es vol tetejar Acces de vehicle
     * amb lectura de matricula incorrecta per tant no autoritzat
     */

    public function testPostAccesGoodJson(){
        $Acces = new Acces();
        //Directori on hi ha json de test
        $dir = "/home/oriol/tfg/testsjsons/jsontots/";
        $directorio = opendir($dir); //ruta actual
        while ($archivo = readdir($directorio)) //legim fitxer a fitxer
        {
            if (!is_dir($archivo))//verfiquem que sigui un fitxer
            {
                $list[] = $archivo;
            }

        }
        sort($list);
        foreach ($list as $nomFitxer)
        {
            $datos = $this->provideJson($dir.$nomFitxer);
            $this->call('POST', '/acces',$datos);
            $this->assertResponseOk();
        }
        //echo $counta."jsons";
        $resultat = $Acces->get();
        $this->assertEquals($resultat->count(),112);
    }


    public function testvalidarMatricula(){
        $NewAccesController = new NewAccesController();
        $matriculesTrue = array('LA1234GG',  'L1234GG', 'L1234G', 'LA1234', 'L1234', '1234XXX');
        $matriculesFalse = array('1234',  '1234SS', '1234AA', '1234AAA', '1234DAD', '1234DDDD');
        foreach ($matriculesTrue as $key => $matricula)
        {
            $testValidarMatricula = $NewAccesController->validarLecturaMatricula($matricula);
            $this->assertEquals($testValidarMatricula, True);
        }
        foreach ($matriculesFalse as $key => $matricula)
        {
            $testValidarMatricula = $NewAccesController->validarLecturaMatricula($matricula);
            $this->assertEquals($testValidarMatricula, False);
        }
    }
   

    public function provideJson($json){
        $str_datos = file_get_contents($json);
        $datos = json_decode($str_datos,true);
        return $datos;
    }

}
