Sha256: 3e27d73a1c9adc63c785249db2ffcbefee8a14ce7ad8551eec8441bf35c28fd9

Contents?: true

Size: 1012 Bytes

Versions: 39

Compression:

Stored size: 1012 Bytes

Contents

#!/usr/bin/env perl6
use v6;
use Test;
use JSON::Tiny;
use lib my $path = IO::Path.new($?FILE).parent.path;

plan 12;
my $module = %*ENV<EXERCISM> ?? 'Example' !! 'Phone';
use-ok $module;
require ::($module) <Phone>;

my %tests = from-json open("$path/cases.json").slurp-rest;

subtest 'number, area-code and pretty methods', {
  plan 3;
  ok Phone.can('number'), 'can Phone.number';
  ok Phone.can('area-code'), 'can Phone.area-code';
  ok Phone.can('pretty'), 'can Phone.pretty';
} or fail 'Missing method(s).';

for @(%tests<valid>) {
  my $phone = Phone.new(number => .<input>);
  my $msg = 'for ' ~ .<test>;
  is $phone.number, .<number>, "number $msg";
  is $phone.area-code, .<area-code>, "area-code $msg";
  is $phone.pretty, .<pretty>, "pretty $msg";
}

todo 'Optional Exception Tests' unless %*ENV<EXERCISM>; # Remove this line for invalid input tests
subtest 'Throw exceptions for invalid input', {
  plan 5;
  throws-like {Phone.new(number => .<input>)}, Exception, .<test> for @(%tests<invalid>);
}

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
trackler-2.0.6.36 tracks/perl6/exercises/phone-number/phone-number.t
trackler-2.0.6.35 tracks/perl6/exercises/phone-number/phone-number.t
trackler-2.0.6.34 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.33 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.32 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.31 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.30 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.29 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.28 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.27 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.26 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.25 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.24 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.23 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.22 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.21 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.20 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.19 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.18 tracks/perl6/exercises/phone-number/phone.t
trackler-2.0.6.17 tracks/perl6/exercises/phone-number/phone.t