<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;

class ApiControllerV1Test extends TestCase
{
    public function test_prueba_compara_domicilios()
    {
        $this->withoutMiddleware();

        $data = [
            'street_name1' => 'Av. Corrientes',
            'street_number1' => '1234',
            'floor1' => '5',
            'apartment1' => 'A',
            'city1' => 'Buenos Aires',
            'state1' => 'Buenos Aires',
            'country1' => 'Argentina',

            'street_name2' => 'Av. Santa Fe',
            'street_number2' => '4321',
            'floor2' => '3',
            'apartment2' => 'A',
            'city2' => 'Buenos Aires',
            'state2' => 'Buenos Aires',
            'country2' => 'Argentina'
        ];

        // Realizar la solicitud POST al endpoint
        $url = 'http://' . env('API_ROUTE') . '/api/v1/prueba-compara-domicilios/json';
        $response = $this->postJson($url, $data);

        // Verificar que la respuesta tenga un status 200 (éxito)
        $response->assertStatus(200);

        // Verificar que la respuesta contenga una estructura JSON con la clave "Response"
        $response->assertJsonStructure([
            'Response' => [
                'country_code_validation',
                'state_validation',
                'city_validation',
                'street_name_validation',
                'street_number_validation',
                'floor_validation',
                'apartment_validation',
            ]
        ]);

        // Verificar que los valores dentro de la respuesta sean los esperados
        $response->assertJson([
            'Response' => [
                'country_code_validation' => 'TRUE',
                'state_validation' => 'TRUE',
                'city_validation' => 'TRUE',
                'street_name_validation' => 'FALSE',
                'street_number_validation' => 'FALSE',
                'floor_validation' => 'FALSE',
                'apartment_validation' => 'TRUE',
            ]
        ]);

    }
}
