diff --git a/src/main/java/com/squareup/phrase/Phrase.java b/src/main/java/com/squareup/phrase/Phrase.java index f642797..49c436e 100644 --- a/src/main/java/com/squareup/phrase/Phrase.java +++ b/src/main/java/com/squareup/phrase/Phrase.java @@ -278,6 +278,11 @@ private KeyToken key(Token prev) { consume(); } + // Disallow uppercase + if ((curChar >= 'A' && curChar <= 'Z')) { + throw new IllegalArgumentException("Uppercase Not Allowed: '" + curChar + "'"); + } + // Consume the closing '}'. if (curChar != '}') { throw new IllegalArgumentException("Missing closing brace: }"); diff --git a/src/test/java/com/squareup/phrase/PhraseTest.java b/src/test/java/com/squareup/phrase/PhraseTest.java index b1332ac..205ec04 100644 --- a/src/test/java/com/squareup/phrase/PhraseTest.java +++ b/src/test/java/com/squareup/phrase/PhraseTest.java @@ -116,6 +116,14 @@ public class PhraseTest { .isEqualTo("Hello Eric"); } + @Test public void putFailUppercaseNotAllowed() { + try{ + from("Hello {Name}").putOptional("Name", "Eric").format().toString(); + fail("Expected IllegalArgumentException"); + } catch (IllegalArgumentException e) { + } + } + private Phrase gender = from("{gender}"); @Test