#!/usr/bin/env perl
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
use strict;
use warnings;
use lib qw( . lib local/lib/perl5 );

use Test::More;
use Bugzilla;
BEGIN { Bugzilla->extensions }

my $class  = 'Bugzilla::Extension::BMO';
my $parse  = $class->can('parse_bounty_attachment_description');
my $format = $class->can('format_bounty_attachment_description');

ok($parse, "got the function");

my $bughunter = $parse->('bughunter@hacker.org, , 2014-06-25, , ,false');
is_deeply(
  {
    reporter_email => 'bughunter@hacker.org',
    amount_paid    => '',
    reported_date  => '2014-06-25',
    fixed_date     => '',
    awarded_date   => '',
    publish        => 0,
    credit         => []
  },
  $bughunter
);

my $hfli
  = $parse->(
  'hfli@fortinet.com, 1000, 2010-07-16, 2010-08-04, 2011-06-15, true, Fortiguard Labs'
  );
is_deeply(
  {
    reporter_email => 'hfli@fortinet.com',
    amount_paid    => '1000',
    reported_date  => '2010-07-16',
    fixed_date     => '2010-08-04',
    awarded_date   => '2011-06-15',
    publish        => 1,
    credit         => ['Fortiguard Labs']
  },
  $hfli
);

is(
  'batman@justiceleague.america,1000,2015-01-01,2015-02-02,2015-03-03,true,JLA,Wayne Industries,Test',
  $format->({
    reporter_email => 'batman@justiceleague.america',
    amount_paid    => 1000,
    reported_date  => '2015-01-01',
    fixed_date     => '2015-02-02',
    awarded_date   => '2015-03-03',
    publish        => 1,
    credit         => ['JLA', 'Wayne Industries', 'Test']
  })
);

my $dylan = $parse->(
  'dylan@hardison.net,2,2014-09-23,2014-09-24,2014-09-25,true,Foo bar,Bork,');
is_deeply(
  {
    reporter_email => 'dylan@hardison.net',
    amount_paid    => 2,
    reported_date  => '2014-09-23',
    fixed_date     => '2014-09-24',
    awarded_date   => '2014-09-25',
    publish        => 1,
    credit         => ['Foo bar', 'Bork']
  },
  $dylan
);

done_testing;
