blob: 05442b9094235f6e5871d2c8ed4410b1f559fc5d [file] [log] [blame]
/*
* Copyright 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.uibinder.rebind;
import junit.framework.TestCase;
/**
* Having a style tool that forces one to create javadoc that communicates no
* more information than the class name itself is the kind of foolishness that
* gives Java development a bad name.
*/
public class TokenatorTest extends TestCase {
private static final String FORMAT = "Token %d replaces \"%s\"";
private static final String BEGIN = "This is a bunch of text.";
private static final String EXPECTED =
"Token 1 replaces \"This\" is a " + "Token 2 replaces \"bunch\" of "
+ "Token 3 replaces \"text.\"";
private int serial = 0;
private Tokenator tokenator;
private String betokened;
@Override
public void setUp() throws Exception {
tokenator = new Tokenator();
betokened =
BEGIN.replace("This", betoken("This")).replace("bunch",
betoken("bunch")).replace("text.", betoken("text."));
serial = 0;
};
public void testHasToken() {
String noTokens = BEGIN;
assertFalse(Tokenator.hasToken(noTokens));
assertTrue(Tokenator.hasToken(betokened));
}
public void testSimple() {
assertEquals(EXPECTED, tokenator.detokenate(betokened));
}
public void testStatic() {
assertEquals("0 is a 1 of 2", Tokenator.detokenate(betokened,
new Tokenator.Resolver() {
int serial = 0;
public String resolveToken(String token) {
return String.format("%d", serial++);
}
}));
}
private String betoken(String in) {
return tokenator.nextToken(String.format(FORMAT, ++serial, in));
}
}