| 1 | use strict; |
|---|
| 2 | use Test::More tests => 20; |
|---|
| 3 | |
|---|
| 4 | use Text::Chalow::Parser; |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | my $changelog = << 'ChangeLog' |
|---|
| 8 | 2008-01-20 Tatsuwo <yto at example.com> |
|---|
| 9 | |
|---|
| 10 | * ChangeLogReader.pm: |
|---|
| 11 | good-bye message-top, message-bottom |
|---|
| 12 | |
|---|
| 13 | * Hello[CAT2]: |
|---|
| 14 | hello |
|---|
| 15 | |
|---|
| 16 | 2008-01-19 Tatsuwo <yto at example.com> |
|---|
| 17 | |
|---|
| 18 | * Good: |
|---|
| 19 | bad |
|---|
| 20 | |
|---|
| 21 | 2007-03-11 YAMASHITA Tatsuo <yto at nais.to> |
|---|
| 22 | |
|---|
| 23 | * chalow[CAT1][CAT2]: add use URI::Escape; |
|---|
| 24 | |
|---|
| 25 | 2007-02-05 YAMASHITA Tatsuo <yto at nais.to> |
|---|
| 26 | |
|---|
| 27 | * chalow[CAT1]: move to chalow.org |
|---|
| 28 | |
|---|
| 29 | * p:hohohoho |
|---|
| 30 | |
|---|
| 31 | 2006-01-30 Mr. Oreore |
|---|
| 32 | |
|---|
| 33 | * p:secret: hogehoge |
|---|
| 34 | |
|---|
| 35 | 2006-01-20 Mr. Oreore |
|---|
| 36 | |
|---|
| 37 | * hoge[CAT1][CAT2]: uhihi |
|---|
| 38 | |
|---|
| 39 | * foo[CAT2]: bar |
|---|
| 40 | ChangeLog |
|---|
| 41 | ; |
|---|
| 42 | |
|---|
| 43 | my $rcp1 = new Text::Chalow::Parser(); |
|---|
| 44 | ok($rcp1); |
|---|
| 45 | $rcp1->parse_string(\$changelog); |
|---|
| 46 | is(keys %{$rcp1->{all}}, 5); |
|---|
| 47 | ok($rcp1->{all}->{"2006-01-20"}->{1}{ho} eq "foo"); |
|---|
| 48 | is(@{$rcp1->{all}->{"2006-01-20"}->{1}{cat}}, 1); |
|---|
| 49 | ok($rcp1->{all}->{"2006-01-20"}->{2}{co} eq "uhihi\n"); |
|---|
| 50 | ok($rcp1->{all}->{"2006-01-20"}->{2}{a} eq "Mr. Oreore"); |
|---|
| 51 | is(@{$rcp1->{all}->{"2006-01-20"}->{2}{cat}}, 2); |
|---|
| 52 | is($rcp1->{all}->{"2006-01-20"}->{curid}, 2); |
|---|
| 53 | is($rcp1->{all}->{"2007-02-05"}->{curid}, 1); |
|---|
| 54 | |
|---|
| 55 | my $rcp2 = new Text::Chalow::Parser(stop_date => "2007-03-01"); |
|---|
| 56 | ok($rcp2); |
|---|
| 57 | $rcp2->parse_string(\$changelog); |
|---|
| 58 | is(keys %{$rcp2->{all}}, 3); |
|---|
| 59 | ok($rcp2->{all}->{"2008-01-20"}->{1}{co} eq "\nhello\n"); |
|---|
| 60 | is(@{$rcp2->{all}->{"2008-01-20"}->{1}{cat}}, 1); |
|---|
| 61 | ok($rcp2->{all}->{"2008-01-19"}->{1}{co} eq "\nbad\n"); |
|---|
| 62 | |
|---|
| 63 | is($rcp1->{STAT}->{CAT}->{"CAT1"}, $rcp2->{STAT}->{CAT}->{"CAT1"}); |
|---|
| 64 | is($rcp1->{STAT}->{CAT}->{"CAT2"}, $rcp2->{STAT}->{CAT}->{"CAT2"}); |
|---|
| 65 | is($rcp1->{STAT}->{ym}->{"2008-01"}, $rcp2->{STAT}->{ym}->{"2008-01"}); |
|---|
| 66 | is(keys %{$rcp1->{STAT}->{md}->{"01-20"}}, keys %{$rcp2->{STAT}->{md}->{"01-20"}}); |
|---|
| 67 | |
|---|
| 68 | is($rcp1->{STAT}->{ymd}->{"2008-01-20"}, 2); |
|---|
| 69 | is($rcp1->{STAT}->{all}, 7); |
|---|