API-INSEE-Sirene

 view release on metacpan or  search on metacpan

t/API-INSEE-Sirene.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More;
use HTTP::Request;

BEGIN { use_ok('API::INSEE::Sirene') };

my $sirene = API::INSEE::Sirene->new('fake_credential');

$sirene->setCurrentEndpoint('siren');
my @oks_custom_criteria = (
#   [ expected_result, field_name, value ... ],
    [ '(siret:"12345678901234"~ OR siret:*12345678901234*)',                'siret',                   '12345678901234',         ],
    [ '(siret:"12345678901234"~ OR siret:*12345678901234*)',                'siret',                   '12345678901234',         ],
    [ 'periode(nomUniteLegale:"foo"~ OR nomUniteLegale:*foo*)',             'nomUniteLegale',          'foo',                    ],
    [ 'periode(nomUniteLegale:"foo%26bar"~ OR nomUniteLegale:*foo%26bar*)', 'nomUniteLegale',          'foo&bar',                ],
    [ 'periode(nomUniteLegale:foo)',                                        'nomUniteLegale',          'foo',            'exact' ],
    [ 'periode(nomUniteLegale:foo*)',                                       'nomUniteLegale',          'foo',            'begin' ],
    [ 'libelleVoieEtablissement:foo',                                       'nomvoie',                 'foo',            'exact' ],
    [ 'periode(denominationUniteLegale:foo)',                               'denominationUniteLegale', 'foo',            'exact' ],
    [ 'periode(denominationUniteLegale:bar*)',                              'denominationUniteLegale', 'bar',            'begin' ],
    [ 'periode(denominationUniteLegale:foo%26bar)',                         'denominationUniteLegale', 'foo&bar',        'exact' ],
    [ 'adresseEtablissement:foo',                                           'adresseEtablissement',    'foo',            'exact' ],
);

foreach (@oks_custom_criteria) {
    my ($expected, @args) = @{ $_ };
    ok($expected eq $sirene->getCustomCriteria(@args));
}

$sirene->setDebugMode(1);

my @oks_request_GET = (
    [ 'getLegalUnitBySIREN',     '123456789'      ],
    [ 'getEstablishmentBySIRET', '12345678901234' ],
);

foreach (@oks_request_GET) {
    my ($method, @args) = @{$_};

    can_ok($sirene, $method);

    my ($err, $request) = $sirene->$method(@args);

    ok(0 == $err);
    $request =~ s/^Sent request:\n//m;

    my $r = HTTP::Request->parse($request);

    ok($r->method eq 'GET');
    ok($r->uri =~ qr{/sire[nt]/\d{9,14}\?});
}

my @oks_request_POST = (
    [ 'getEstablishmentsByUsualName', 'foo' ],
    [ 'getEstablishmentsByName',      'foo' ],
);

=for doc

# q=((denominationUsuelle1UniteLegale%3A%22foo%22~+OR+denominationUsuelle1UniteLegale%3A*foo*))&date=2021-02-02&nombre=20
# q=((denominationUniteLegale%3A%22foo%22~+OR+denominationUniteLegale%3A*foo*))&date=2021-02-02&nombre=20



( run in 0.523 second using v1.01-cache-2.11-cpan-39bf76dae61 )