source: t/magic.t @ 1490f1

Revision 1490f1, 1.5 KB checked in by Tomash Brechko <tomash.brechko@…>, 2 years ago (diff)

Readonly may be absent.

  • Property mode set to 100644
Line 
1use warnings;
2use strict;
3
4use Test::More;
5
6use FindBin;
7
8use lib "$FindBin::Bin";
9use Memd;
10
11if ($Memd::memd) {
12    plan tests => 9;
13} else {
14    plan skip_all => 'Not connected';
15}
16
17
18use Tie::Scalar;
19use Tie::Array;
20use Tie::Hash;
21
22tie my $scalar, 'Tie::StdScalar';
23tie my @array, 'Tie::StdArray';
24tie my %hash, 'Tie::StdHash';
25
26%hash = %Memd::params;
27@array = @{$hash{servers}};
28$hash{servers} = \@array;
29my $memd = new Cache::Memcached::Fast(\%hash);
30
31use utf8;
32
33my $key = "КОрОллОца.в.UTF-8";
34$scalar = $key;
35ok($memd->set($scalar, $scalar));
36ok(exists $memd->get_multi($scalar)->{$scalar});
37is($memd->get($scalar), $key);
38is($memd->get($key), $scalar);
39
40
41package MyScalar;
42use base 'Tie::StdScalar';
43
44sub FETCH {
45    "ДругПй.ключ"
46}
47
48package main;
49
50tie my $scalar2, 'MyScalar';
51
52ok($memd->set($scalar2, $scalar2));
53ok(exists $memd->get_multi($scalar2)->{$scalar2});
54
55SKIP: {
56    eval { require Readonly };
57    skip "Skipping Readonly tests because the module is not present", 3
58      if $@;
59
60    # 'require Readonly' as above can be used to test if the module is
61    # present, but won't actually work.  So below we 'use Readonly',
62    # but in a string eval.
63    eval q{
64        use Readonly;
65
66        Readonly my $expires => 3;
67
68        Readonly my $key2 => "ТретОй.ключ";
69        ok($memd->set($key2, $key2, $expires));
70        ok(exists $memd->get_multi($key2)->{$key2});
71        sleep(4);
72        ok(! exists $memd->get_multi($key2)->{$key2});
73    };
74}
Note: See TracBrowser for help on using the repository browser.