1#!/usr/bin/perl
2
3use Test;
4BEGIN { plan tests => 11 }
5
6########################################################################
7
8package MyClass;
9sub new { my $class = shift; bless { @_ }, $class }
10
11package MySubclass;
12@ISA = 'MyClass';
13
14########################################################################
15
16package main;
17
18use Class::MakeMethods::Utility::Inheritable qw( get_vvalue set_vvalue );
19
20ok(1);
21
22########################################################################
23
24my $obj = MyClass->new();
25my $sobj = MySubclass->new();
26
27my $dataset = {};
28
29ok( ! defined get_vvalue($dataset, 'MyClass') );
30set_vvalue($dataset, 'MyClass', 'Foobar');
31ok( get_vvalue($dataset, 'MyClass') eq 'Foobar' );
32
33ok( get_vvalue($dataset, $obj) eq 'Foobar' );
34set_vvalue($dataset, $obj, 'Foible');
35ok( get_vvalue($dataset, $obj) eq 'Foible' );
36
37ok( get_vvalue($dataset, 'MySubclass') eq 'Foobar' );
38ok( get_vvalue($dataset, $sobj) eq 'Foobar' );
39set_vvalue($dataset, 'MySubclass', 'Foozle');
40ok( get_vvalue($dataset, 'MySubclass') eq 'Foozle' );
41ok( get_vvalue($dataset, 'MyClass') eq 'Foobar' );
42
43ok( get_vvalue($dataset, $sobj) eq 'Foozle' );
44set_vvalue($dataset, $sobj, 'Frosty');
45ok( get_vvalue($dataset, $sobj) eq 'Frosty' );
46
47########################################################################
48
491;
50