From aa3ec64c8260cc99fc59867ce954c449bb5e2dfc Mon Sep 17 00:00:00 2001 From: Patrick Forhan Date: Thu, 20 Jul 2017 18:01:59 -0700 Subject: [PATCH 1/2] More clear error messages for invalid characters Tweaks invalid start- and end-of-token messages for clarity. Inspired by #33, fixes #32 and #34, probably #29 as well. --- src/main/java/com/squareup/phrase/Phrase.java | 5 +++-- src/test/java/com/squareup/phrase/PhraseTest.java | 13 ++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/squareup/phrase/Phrase.java b/src/main/java/com/squareup/phrase/Phrase.java index f642797..a3eb622 100644 --- a/src/main/java/com/squareup/phrase/Phrase.java +++ b/src/main/java/com/squareup/phrase/Phrase.java @@ -259,7 +259,7 @@ private Token token(Token prev) { return key(prev); } else { throw new IllegalArgumentException( - "Unexpected character '" + nextChar + "'; expected key."); + "Unexpected first character '" + nextChar + "'; must be lower case a-z."); } } return text(prev); @@ -280,7 +280,8 @@ private KeyToken key(Token prev) { // Consume the closing '}'. if (curChar != '}') { - throw new IllegalArgumentException("Missing closing brace: }"); + throw new IllegalArgumentException("Unexpected character '" + curChar + + "'; expecting lower case a-z, '_', or '}'"); } consume(); diff --git a/src/test/java/com/squareup/phrase/PhraseTest.java b/src/test/java/com/squareup/phrase/PhraseTest.java index b1332ac..cdfe07d 100644 --- a/src/test/java/com/squareup/phrase/PhraseTest.java +++ b/src/test/java/com/squareup/phrase/PhraseTest.java @@ -116,6 +116,16 @@ public class PhraseTest { .isEqualTo("Hello Eric"); } + @Test public void putFailUppercaseNotAllowedMiddle() { + try{ + from("Hello {aName}").putOptional("Name", "Eric").format(); + fail("Expected IllegalArgumentException"); + } catch (IllegalArgumentException e) { + assertThat(e.getMessage()) // + .isEqualTo("Unexpected character 'N'; expecting lower case a-z, '_', or '}'"); + } + } + private Phrase gender = from("{gender}"); @Test @@ -143,11 +153,12 @@ public void formatFailsFastWhenKeysAreMissing() { } } - @Test public void illegalTokenCharactersFailFast() { + @Test public void illegalStartOfTokenCharactersFailFast() { try { from("blah {NoUppercaseAllowed}"); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { + assertThat(e.getMessage()).isEqualTo("Unexpected first character 'N'; must be lower case a-z."); } } From 76e23578ce45995d5890fd028c57a239b0693a96 Mon Sep 17 00:00:00 2001 From: Patrick Forhan Date: Mon, 14 Aug 2017 12:36:25 -0500 Subject: [PATCH 2/2] Add sdk license. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b6e2942..07f17a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ android: - extra-android-m2repository licenses: - android-sdk-license-5be876d5 + - android-sdk-license-c81a61d9 jdk: - oraclejdk7