NAME
Test::IOC - Test IOC registries
SYNOPSIS
use Test::More;
use Test::IOC;
use MyIOCStuff;
service_exists("/app/log_file");
service_is_literal("/app/log_file");
service_exists("/app/logger");
service_is_singleton("/app/logger");
service_can("/app/logger", qw/warn debug/);
DESCRIPTION
This module provides some simple facilities to test IOC registries for correctness.
CAVEAT
This module is still in development, so use at your own risk. But then again, its for tests, so thats not very risky anyway.
EXPORTS
- service_exists $path
- container_exists $path
-
Checks that the path exists in the registry.
- service_is $path, $spec
- service_isa $path, $class
- service_can $path, @methods
- service_is_deeply $path, $spec
-
These methods provide tests akin to Test::More's
is
,isa_ok
,can_ok
andis_deeply
, except that the first argument is used as a path to fetch from the registry. - service_is_singleton $path
- service_is_literal $path
- service_is_prototype $path
-
Checks that the service constructor class is of the right type for lifecycle management.
- service_alias_ok $real, $alias
-
Check that the path $real has an alias $alias
- container_list_is $parent_path, \@container_names
- service_list_is $parent_path, \@service_names
-
Check that the child elements under $parent_path are as listed in the service name array reference. The names don't have to be sorte.
- get_service_object $path
-
Utility function to get the IOC::Service object (not the service itself) for a given path.
- locate_container $path
-
Utility function to call "locateContainer" in IOC::Registry.
- locate_service $path
-
Utility function to call "locateService" in IOC::Registry.
- search_for_container $name
-
Utility function to call "searchForContainer" in IOC::Registry.
- search_for_service $name
-
Utility function to call "searchForService" in IOC::Registry.
BUGS
None that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it.
AUTHOR
Yuval Kogman
COPYRIGHT AND LICENSE
Copyright 2004-2007 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.