#!perl -T
use 5.006;
use Test::More;
use Encode qw/encode decode/;
use utf8;
use JSON;
use Scalar::Util qw/refaddr/;
use Struct::WOP qw/all/ => { type => ['UTF-8', 'latin-1'], destruct => 1 };

BEGIN {
    use_ok( 'Struct::WOP' ) || print "Bail out!\n";
}

my $valid = [
	'ç∂ß',
	'ç∂ß',
	'ß',
	\1,
];

my $scala = \encode('UTF-8', 'ß');
my $bool = \1;
my $data = [
	'ç∂ß',
	encode('UTF-8', 'ç∂ß'),
	$scala,
	$bool
];

my $json = JSON->new->utf8;
is($json->encode(maybe_decode($data)), $json->encode($valid), "corrctly encoded utf8");  

my $vhash = {
	a => 'ß',
};

my $hash = {
	a => encode('UTF-8', 'ß'),
};

is($json->encode(maybe_decode($hash)), $json->encode($vhash), "correctly encoded utf8");

done_testing();