The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

# ThreatNet::Message basic functionality tests

use strict;
BEGIN {
	$|  = 1;
	$^W = 1;
}





# Does everything load?
use Test::More tests => 21;
use ThreatNet::Message::IPv4 ();

# Create the test data
my @good = (
	'123.123.123.123',
	'0.123.123.123',
	'123.123.123.123 comment',
	);
my @bad = (
	undef,
	[],
	\"stringref",
	{},
	sub () { 1 },
	'123.123.123.456'
	);

foreach my $ip ( @good ) {
	my ($nums) = $ip =~ /^([\d\.]+)/;
	my $Message = ThreatNet::Message::IPv4->new( $ip );
	isa_ok( $Message, 'ThreatNet::Message::IPv4' );
	isa_ok( $Message->IP, 'Net::IP' );
	is( $Message->ip, $nums, '->ip returns as expected' );
	ok( $Message->created, '->created returns true' );
	ok( $Message->event_time, '->event_time returns true' );
}

foreach my $ip ( @bad ) {
	my $Message = ThreatNet::Message::IPv4->new( $ip );
	is( $Message, undef, 'Bad value returns undef' );
}