Aion
view release on metacpan or search on metacpan
t/aion/meta/feature.t view on Meta::CPAN
use common::sense; use open qw/:std :utf8/; use Carp qw//; use Cwd qw//; use File::Basename qw//; use File::Find qw//; use File::Slurper qw//; use File::Spec qw//; use File::Path qw//; use Scalar::Util qw//; use Test::More 0.98; use String::Diff q...
# # NAME
#
# Aion::Meta::Feature - меÑаопиÑаÑÐµÐ»Ñ ÑиÑи
#
# # SYNOPSIS
#
subtest 'SYNOPSIS' => sub {
use Aion::Meta::Feature;
our $feature = Aion::Meta::Feature->new("My::Package", "my_feature" => (is => 'rw'));
local ($::_g0 = do {$feature->stringify}, $::_e0 = "has my_feature => (is => 'rw') of My::Package"); ::ok $::_g0 eq $::_e0, '$feature->stringify # => has my_feature => (is => \'rw\') of My::Package' or ::diag ::_string_diff($::_g0, $::_e0); undef $:...
#
# # DESCRIPTION
#
# ÐпиÑÑÐ²Ð°ÐµÑ ÑиÑÑ, коÑоÑÐ°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑÑÑ Ð² клаÑÑ ÑÑнкÑией `has`.
#
# # METHODS
#
# ## pkg
# ÐакеÑ, к коÑоÑÐ¾Ð¼Ñ Ð¾ÑноÑиÑÑÑ ÑиÑа.
#
::done_testing; }; subtest 'pkg' => sub {
local ($::_g0 = do {$::feature->pkg}, $::_e0 = do {"My::Package"}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->pkg # -> "My::Package"' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## name
# ÐÐ¼Ñ ÑиÑи.
#
::done_testing; }; subtest 'name' => sub {
local ($::_g0 = do {$::feature->name}, $::_e0 = do {"my_feature"}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->name # -> "my_feature"' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## opt
# Ð¥ÐµÑ Ð¾Ð¿Ñий ÑиÑи.
#
::done_testing; }; subtest 'opt' => sub {
local ($::_g0 = do {$::feature->opt}, $::_e0 = do {{is => 'rw'}}); ::is_deeply $::_g0, $::_e0, '$::feature->opt # --> {is => \'rw\'}' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## has
# ÐаÑÑив опÑий ÑиÑи в виде Ð¿Ð°Ñ ÐºÐ»ÑÑ-знаÑение.
#
::done_testing; }; subtest 'has' => sub {
local ($::_g0 = do {$::feature->has}, $::_e0 = do {['is', 'rw']}); ::is_deeply $::_g0, $::_e0, '$::feature->has # --> [\'is\', \'rw\']' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## construct
# ÐбÑÐµÐºÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑа ÑиÑи.
#
::done_testing; }; subtest 'construct' => sub {
local ($::_g0 = do {ref $::feature->construct}, $::_e0 = 'Aion::Meta::FeatureConstruct'); ::ok $::_g0 eq $::_e0, 'ref $::feature->construct # \> Aion::Meta::FeatureConstruct' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## order ()
# ÐоÑÑдковÑй Ð½Ð¾Ð¼ÐµÑ ÑиÑи в клаÑÑе.
#
::done_testing; }; subtest 'order ()' => sub {
local ($::_g0 = do {$::feature->order}, $::_e0 = do {0}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->order # -> 0' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## required (;$bool)
# Флаг обÑзаÑелÑноÑÑи ÑиÑи в конÑÑÑÑкÑоÑе (`new`).
#
::done_testing; }; subtest 'required (;$bool)' => sub {
$::feature->required(1);
local ($::_g0 = do {$::feature->required}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->required # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## excessive (;$bool)
# Флаг избÑÑоÑноÑÑи ÑиÑи в конÑÑÑÑкÑоÑе (`new`). ÐÑли она Ñам еÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð¾ вÑбÑаÑÑваÑÑÑÑ Ð¸ÑклÑÑение.
#
::done_testing; }; subtest 'excessive (;$bool)' => sub {
$::feature->excessive(1);
local ($::_g0 = do {$::feature->excessive}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->excessive # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## isa (;Object[Aion::Type])
# ÐгÑаниÑение Ñипа Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑиÑи.
#
::done_testing; }; subtest 'isa (;Object[Aion::Type])' => sub {
use Aion::Type;
my $Int = Aion::Type->new(name => 'Int');
$::feature->isa($Int);
local ($::_g0 = do {$::feature->isa}, $::_e0 = do {$Int}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->isa # -> $Int' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## lazy (;$bool)
# Флаг ленивой иниÑиализаÑии.
#
::done_testing; }; subtest 'lazy (;$bool)' => sub {
$::feature->lazy(1);
local ($::_g0 = do {$::feature->lazy}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->lazy # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## builder (;$sub)
# ÐÐ¸Ð»Ð´ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑиÑи или `undef`.
#
::done_testing; }; subtest 'builder (;$sub)' => sub {
my $builder = sub {};
$::feature->builder($builder);
local ($::_g0 = do {$::feature->builder}, $::_e0 = do {$builder}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->builder # -> $builder' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## default (;$value)
# ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑиÑи.
#
::done_testing; }; subtest 'default (;$value)' => sub {
$::feature->default(42);
local ($::_g0 = do {$::feature->default}, $::_e0 = do {42}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->default # -> 42' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## trigger (;$sub)
# ÐбÑабоÑÑик ÑобÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑиÑи или `undef`.
#
::done_testing; }; subtest 'trigger (;$sub)' => sub {
my $trigger = sub {};
$::feature->trigger($trigger);
local ($::_g0 = do {$::feature->trigger}, $::_e0 = do {$trigger}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->trigger # -> $trigger' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## release (;$sub)
# ÐбÑабоÑÑик ÑобÑÑÐ¸Ñ ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð· ÑиÑи или `undef`.
#
::done_testing; }; subtest 'release (;$sub)' => sub {
my $release = sub {};
$::feature->release($release);
local ($::_g0 = do {$::feature->release}, $::_e0 = do {$release}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->release # -> $release' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## cleaner (;$sub)
# ÐбÑабоÑÑик ÑобÑÑÐ¸Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑиÑи из обÑекÑа или `undef`.
#
::done_testing; }; subtest 'cleaner (;$sub)' => sub {
my $cleaner = sub {};
$::feature->cleaner($cleaner);
local ($::_g0 = do {$::feature->cleaner}, $::_e0 = do {$cleaner}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->cleaner # -> $cleaner' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## make_reader (;$bool)
# Флаг ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÑода-ÑидеÑа.
#
::done_testing; }; subtest 'make_reader (;$bool)' => sub {
$::feature->make_reader(1);
local ($::_g0 = do {$::feature->make_reader}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->make_reader # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## make_writer (;$bool)
# Флаг ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÑода-ÑайÑеÑа.
#
::done_testing; }; subtest 'make_writer (;$bool)' => sub {
$::feature->make_writer(1);
local ($::_g0 = do {$::feature->make_writer}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->make_writer # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## make_predicate (;$bool)
# Флаг ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÑода-пÑедикаÑа.
#
::done_testing; }; subtest 'make_predicate (;$bool)' => sub {
$::feature->make_predicate(1);
local ($::_g0 = do {$::feature->make_predicate}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->make_predicate # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## make_clearer (;$bool)
# Флаг ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÑода-оÑиÑÑиÑелÑ.
#
::done_testing; }; subtest 'make_clearer (;$bool)' => sub {
$::feature->make_clearer(1);
local ($::_g0 = do {$::feature->make_clearer}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->make_clearer # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## new ($pkg, $name, @has)
# ÐонÑÑÑÑкÑÐ¾Ñ ÑиÑи.
#
::done_testing; }; subtest 'new ($pkg, $name, @has)' => sub {
my $feature = Aion::Meta::Feature->new('My::Class', 'attr', is => 'ro', default => 1);
local ($::_g0 = do {$feature->pkg}, $::_e0 = do {"My::Class"}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$feature->pkg # -> "My::Class"' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$feature->name}, $::_e0 = do {"attr"}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$feature->name # -> "attr"' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$feature->opt}, $::_e0 = do {{is => 'ro', default => 1}}); ::is_deeply $::_g0, $::_e0, '$feature->opt # --> {is => \'ro\', default => 1}' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## stringify ()
# СÑÑоковое пÑедÑÑавление ÑиÑи.
#
::done_testing; }; subtest 'stringify ()' => sub {
local ($::_g0 = do {$::feature->stringify}, $::_e0 = do {"has my_feature => (is => 'rw') of My::Package"}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->stringify # -> "has my_feature => (is => \'rw\') of My::Package"' or...
#
# ## mk_property ()
# СоздаÑÑ Ð°ÐºÑеÑÑоÑ, геÑÑеÑ, ÑеÑÑеÑ, пÑÐµÐ´Ð¸ÐºÐ°Ñ Ð¸ оÑиÑÑиÑÐµÐ»Ñ ÑвойÑÑва.
#
::done_testing; }; subtest 'mk_property ()' => sub {
package My::Package { use Aion }
$::feature->mk_property;
local ($::_g0 = do {!!My::Package->can('my_feature')}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '!!My::Package->can(\'my_feature\') # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# ## meta ()
# ÐозвÑаÑÐ°ÐµÑ ÐºÐ¾Ð´ в виде ÑекÑÑа Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к меÑаинÑоÑмаÑии ÑиÑи.
#
::done_testing; }; subtest 'meta ()' => sub {
local ($::_g0 = do {$::feature->meta}, $::_e0 = '$Aion::META{\'My::Package\'}{feature}{my_feature}'); ::ok $::_g0 eq $::_e0, '$::feature->meta # \> $Aion::META{\'My::Package\'}{feature}{my_feature}' or ::diag ::_string_diff($::_g0, $::_e0); undef $::...
#
# ## stash ($key; $val)
# ÐоÑÑÑп к Ñ
ÑанилиÑÑ ÑвойÑÑв Ð´Ð»Ñ Ð²ÑзÑваÑÑего пакеÑа.
#
::done_testing; }; subtest 'stash ($key; $val)' => sub {
$::feature->stash('my_key', 'my_value');
local ($::_g0 = do {$::feature->stash('my_key')}, $::_e0 = do {'my_value'}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$::feature->stash(\'my_key\') # -> \'my_value\'' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef ...
#
# ## compare ($other)
#
# СÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ ÑÑаÑÑÑ ÑиÑÑ Ñ Ð¿ÐµÑезагÑÑжаемой. ÐÑли ÑвойÑÑво `isa` Ñказано и не ÑовпадÑÑ, Ñо бÑÐ´ÐµÑ Ð²ÑбÑоÑено иÑклÑÑение.
#
# # AUTHOR
#
# Yaroslav O. Kosmina <dart@cpan.org>
#
# # LICENSE
#
# â **GPLv3**
#
# # COPYRIGHT
#
# The Aion::Meta::Feature module is copyright © 2025 Yaroslav O. Kosmina. Rusland. All rights reserved.
::done_testing;
};
::done_testing;
( run in 1.842 second using v1.01-cache-2.11-cpan-d80b1682f3f )