Cpanel-iContact-Provider-Schema-Telegram.t 1.4 KB

123456789101112131415161718192021222324252627282930
  1. use strict;
  2. use warnings;
  3. use Cwd qw{abs_path};
  4. use File::Basename qw{dirname};
  5. use lib abs_path( dirname(__FILE__) . "/../lib" );
  6. use Test::More;
  7. use Test::Deep;
  8. use Cpanel::iContact::Provider::Schema::Telegram ();
  9. plan tests => 2;
  10. subtest "Settings getter method performs as expected" => sub {
  11. my $model = [ 'CONTACTTELEGRAM', 'TELEGRAMBOTTOKEN' ];
  12. my $settings = Cpanel::iContact::Provider::Schema::Telegram::get_settings();
  13. is_deeply( [ sort keys( %{$settings} ) ], $model, "Settings returned look OK so far" );
  14. foreach my $key (@$model) {
  15. is(
  16. $settings->{$key}{'checkval'}->('123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'),
  17. '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11', "Valid values passed to checkval subroutine of '$key' assumed GreatSuccess"
  18. ) if ref $settings->{$key}{'checkval'} eq 'CODE';
  19. }
  20. is( $settings->{'CONTACTTELEGRAM'}{'checkval'}->(' '), '', "Invalid values passed to checkval subroutine of 'CONTACTTELEGRAM' silently got smashed" );
  21. is( eval { $settings->{'TELEGRAMBOTTOKEN'}{'checkval'}->(' NeenerNeenerNotAToken') }, undef, "Invalid values passed to checkval subroutine of 'CONTACTTELEGRAM' engaged Maximum NO" );
  22. };
  23. my $config_model = { 'default_level' => 'All', 'display_name' => 'Telegram', 'icon' => ignore() };
  24. cmp_deeply( Cpanel::iContact::Provider::Schema::Telegram::get_config(), $config_model, "Config getter method return looks OK" );