############################################## # $Id$ package main; use strict; use warnings; my @events; my @logs; sub FhemTestUtils_gotLog($); sub FhemTestUtils_resetLogs(); sub FhemTestUtils_gotEvent($); sub FhemTestUtils_resetEvents(); sub FhemTestUtils_Initialize($) { my ($hash) = @_; $hash->{DefFn} = "FhemTestUtils_Define"; $hash->{NotifyFn} = "FhemTestUtils_Notify"; } sub FhemTestUtils_Define($$) { my ($hash, $def) = @_; my @a = split("[ \t][ \t]*", $def); return "Wrong syntax: use define dummy" if(int(@a) != 2); $logInform{$a[0]} = sub() { push @logs, $_[1] }; return undef; } sub FhemTestUtils_Notify($$) { my ($ntfy, $dev) = @_; my $events = deviceEvents($dev, 0); my $n = $dev->{NAME}; #map { print "$n:$_\n" } @{$events}; return if(!$events); # Some previous notify deleted the array. push @events, map { "$n:$_" } @{$events}; return undef; } sub FhemTestUtils_gotEvent($) { my ($arg) = @_; return grep /$arg/,@events; } sub FhemTestUtils_resetEvents() { @events=(); } sub FhemTestUtils_gotLog($) { my ($arg) = @_; return grep /$arg/,@logs; } sub FhemTestUtils_resetLogs() { @logs=(); } 1; =pod =item helper =item summary Utility functions for testing FHEM modules =item summary_DE Hilfsfunktionen, um FHEM Module zu testen =begin html

FhemTestUtils

=end html =cut