#! perl -w
use strict;
use Cwd;
use Date::Manip;
use Test::More tests => 12;
use lib qw(t/dummy);

$main::TZ = "GMT";

# First, check if we can create a Babble object
use_ok ("Babble");

my $object = Babble->new ();
isa_ok ($object, "Babble");

# Then, check if it is set up properly
isa_ok ($object->{Collection}, "Babble::Document::Collection");

# Right, time to add a source, and check if it succeeded
use_ok ("Babble::DataSource::FlatFile");

$object->add_sources (
	Babble::DataSource::FlatFile->new (
		-location => cwd() . "/t/data/",
		-permalink_base => "."
	),
);

isa_ok ($object->{Sources}[0], "Babble::DataSource::FlatFile");

# Lets collect the feeds.
can_ok ($object, qw(collect_feeds));
$object->collect_feeds ();

# Did we collect something?
if (eq_array ($object->{Collection}->{documents}, [])) {
	fail ("collect_feed() run");
} else {
	pass ("collect_feed() run");
}

# Are there any documents there?
can_ok ($object, qw(all));

my @all = $object->all ();
ok ($#all == 1, "Number of documents fetched: " . ($#all + 1).
	    " (should be 2)");

# Are they ok?
like ($all[0]->{title}, qr/First blog entry/,
      "First document's title is like 'First blog entry'");

# Can we filter?
my @result = $object->search ([{
	field => "title",
	pattern => "Second"
}]);

ok ($#result == 0, "Search for /Second/");

# Good, then do some output.
like ($object->output (-type => "test"), qr/First.*Second/sm,
      "\$object->output() is like /First.*Second/");

# arch-tag: 57c6add8-a065-4a9f-98be-210aac2f2074