use 5.32.1; use Test::Most tests => 7; use Test::Warnings ':all'; use strict; use warnings; { use_ok 'BeastBB::Response'; } { like( warning { BeastBB::Response->new( is_error => 1, content => 'example_content', error_message => 'example_error' ) }, qr/Error should not have content/, 'BeastBB::Response warns on construction if is_error is true and content is passed.' ); } { like( warning { BeastBB::Response->new( is_error => 1, ) }, qr/You should pass a error message on error\./, 'BeastBB::Response warns on construction if is_error is true and error message is not passed.' ); } { my $response = BeastBB::Response->new( is_error => 1, error_message => 'example error' ); throws_ok { $response->Content; } qr/Attempt to get content from error\./, 'BeastBB::Response dies trying to recover content from error.'; } { my $response = BeastBB::Response->new( content => 'example_content' ); throws_ok { $response->ErrorMessage; } qr/This is not an error\./, 'BeastBB::Response dies trying to recover error message if it is not an error.'; } { my $response = BeastBB::Response->new( is_error => 1, error_message => 'example error' ); is $response->ErrorMessage, 'example error', 'ErrorMessage can be recovered from BeastBB::Response.'; }