use strict;
use Wiki::Toolkit::TestLib;
use Test::More;
if ( scalar @Wiki::Toolkit::TestLib::wiki_info == 0 ) {
plan skip_all => "no backends configured";
} else {
plan tests => ( 12 * scalar @Wiki::Toolkit::TestLib::wiki_info );
}
my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker;
while ( my $wiki = $iterator->new_wiki ) {
# Test a simple write and retrieve.
ok( $wiki->write_node("A Node", "Node content."),
"write_node can create a node" );
is( $wiki->retrieve_node("A Node"), "Node content.",
"retrieve_node can retrieve it" );
# Test calling syntax of ->retrieve_node.
eval { $wiki->retrieve_node; };
ok( $@, "retrieve_node dies if we don't tell it a node parameter" );
is( $wiki->retrieve_node(name => "A Node"), "Node content.",
"retrieve_node still works if we supply params as a hash" );
is( $wiki->retrieve_node(name => "A Node", version => 1), "Node content.",
"...still works if we supply a version param" );
my %node_data = $wiki->retrieve_node("A Node");
is( $node_data{content}, "Node content.",
"...still works when called in list context" );
foreach (qw( last_modified version checksum )) {
ok( defined $node_data{$_}, "...and $_ is defined" );
}
# Test ->node_exists.
ok( $wiki->node_exists("A Node"),
"node_exists returns true for an existing node" );
ok( ! $wiki->node_exists("This Is A Nonexistent Node"),
"...and false for a nonexistent one" );
# Test -> node_name_for_id
my $id = $wiki->store->{_dbh}->selectrow_array("SELECT id FROM node WHERE name = 'A Node'");
is( "A Node", $wiki->store->node_name_for_id($id),
"Can fetch the name of a node with a id" );
}