diff options
author | Struan Donald <struan@exo.org.uk> | 2018-04-17 12:31:04 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2018-04-17 13:41:32 +0100 |
commit | f65ecc75c0899b027ad549d92dc28311c313b2d0 (patch) | |
tree | 1a9fce7d86efa380831b6628bf7c577c38fdbefb | |
parent | e03c3f4251e12043dcdb5497885e18e10bca8782 (diff) |
[Open311] correctly handle one word names when splitting
If a name only had a single word we were failing to split it and not
setting `first_name`. Also refactor splitting out to a function so the
regex is only in one place.
-rw-r--r-- | perllib/Open311.pm | 12 | ||||
-rw-r--r-- | t/open311.t | 6 |
2 files changed, 16 insertions, 2 deletions
diff --git a/perllib/Open311.pm b/perllib/Open311.pm index a65e19fa6..4ec0679af 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -126,7 +126,7 @@ sub _populate_service_request_params { $description = $problem->detail; } - my ( $firstname, $lastname ) = ( $problem->name =~ /(\w+)\.?\s+(.+)/ ); + my ( $firstname, $lastname ) = $self->split_name( $problem->name ); my $params = { description => $description, @@ -338,7 +338,7 @@ sub _populate_service_request_update_params { my $comment = shift; my $name = $comment->name || $comment->user->name; - my ( $firstname, $lastname ) = ( $name =~ /(\w+)\.?\s+(.+)/ ); + my ( $firstname, $lastname ) = $self->split_name( $name ); $lastname ||= '-'; # fall back to problem state as it's probably correct @@ -410,6 +410,14 @@ sub _populate_service_request_update_params { return $params; } +sub split_name { + my ( $self, $name ) = @_; + + my ( $first, $last ) = ( $name =~ /(\w+)(?:\.?\s+(.+))?/ ); + + return ( $first, $last ); +} + sub _get { my $self = shift; my $path = shift; diff --git a/t/open311.t b/t/open311.t index 35d9b0ecb..ce18a6d0c 100644 --- a/t/open311.t +++ b/t/open311.t @@ -196,6 +196,12 @@ for my $test ( first_name => 'Nom', last_name => 'de Report', }, + { + desc => 'Check single word name handled correctly', + name => 'Nom', + first_name => 'Nom', + last_name => '', + } ) { subtest $test->{desc} => sub { $problem->extra( undef ); |