File: 15-message.t

package info (click to toggle)
libnet-dbus-perl 0.33.6-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 724 kB
  • ctags: 417
  • sloc: perl: 4,714; sh: 34; makefile: 6
file content (79 lines) | stat: -rw-r--r-- 2,463 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# -*- perl -*-
use Test::More tests => 33;

use strict;
use warnings;

BEGIN { 
        use_ok('Net::DBus::Binding::Iterator');
        use_ok('Net::DBus::Binding::Message::Signal');
        use_ok('Net::DBus::Binding::Message::MethodCall');
        use_ok('Net::DBus::Binding::Message::MethodReturn');
        use_ok('Net::DBus::Binding::Message::Error');
	};


my $msg = Net::DBus::Binding::Message::Signal->new(object_path => "/foo/bar/Wizz",	
	interface => "com.blah.Example",
        signal_name => "Eeek");

my $iter = $msg->iterator(1);
$iter->append_boolean(1);
$iter->append_byte(43);
$iter->append_int16(123);
$iter->append_uint16(456);
$iter->append_int32(123);
$iter->append_uint32(456);
$iter->append_int64("12345645645");
$iter->append_uint64("12312312312");
$iter->append_int64("12345645645123456");
$iter->append_uint64("12312312312123456");
$iter->append_string("Hello world");
$iter->append_double(1.424141);

$iter->append_array(["one", "two", "three"], [&Net::DBus::Binding::Message::TYPE_STRING]);

$iter->append_dict({ "one" => "foo", "two" => "bar"}, [&Net::DBus::Binding::Message::TYPE_STRING,
						       &Net::DBus::Binding::Message::TYPE_STRING]);

$iter = $msg->iterator();
ok($iter->get_boolean() == 1, "boolean");
ok($iter->next(), "next");
ok($iter->get_byte() == 43, "byte");
ok($iter->next(), "next");

ok($iter->get_int16() == 123, "int16");
ok($iter->next(), "next");
ok($iter->get_uint16() == 456, "uint16");
ok($iter->next(), "next");

ok($iter->get_int32() == 123, "int32");
ok($iter->next(), "next");
ok($iter->get_uint32() == 456, "uint32");
ok($iter->next(), "next");

ok($iter->get_int64() == "12345645645", "int64");
ok($iter->next(), "next");
ok($iter->get_uint64() == "12312312312", "uint64");
ok($iter->next(), "next");

ok($iter->get_int64() == "12345645645123456", "int64");
ok($iter->next(), "next");
ok($iter->get_uint64() == "12312312312123456", "uint64");
ok($iter->next(), "next");

ok($iter->get_string() eq "Hello world", "string");
ok($iter->next(), "next");
# Don't test precise equality, because floating point arithmetic
# is not an exact science. (see RT #37707)
my $d = $iter->get_double();
ok($d > 1.424100 && $d < 1.424200, "double");

ok($iter->next(), "next");
is_deeply($iter->get_array(&Net::DBus::Binding::Message::TYPE_STRING), ["one", "two", "three"], "array");

ok($iter->next(), "next");
is_deeply($iter->get_dict(), {"one" => "foo", "two" => "bar"}, "dict");

ok(!$iter->next(), "next");