//
// Thanks to Jakob Jenkov for his tutorial at
// http://tutorials.jenkov.com/java-howto/replace-strings-in-streams-arrays-files.html
//
package name.abuchen.portfolio.util;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import name.abuchen.portfolio.util.TokenReplacingReader.ITokenResolver;
import org.junit.Assert;
import org.junit.Test;
@SuppressWarnings("nls")
public class TokenReplacingReaderTest
{
public static class MockTokenResolver implements ITokenResolver
{
@Override
public String resolveToken(String tokenName)
{
if ("token1".equals(tokenName))
return "123";
if ("token2".equals(tokenName))
return "";
return "";
}
}
@Test
public void test() throws IOException
{
String sourceString = "this is a ${token1} and ${token2}";
Reader reader = new StringReader(sourceString);
try (TokenReplacingReader tokenReplacingReader = new TokenReplacingReader(reader, new MockTokenResolver()))
{
Assert.assertEquals('t', (char) tokenReplacingReader.read());
Assert.assertEquals('h', (char) tokenReplacingReader.read());
Assert.assertEquals('i', (char) tokenReplacingReader.read());
Assert.assertEquals('s', (char) tokenReplacingReader.read());
Assert.assertEquals(' ', (char) tokenReplacingReader.read());
Assert.assertEquals('i', (char) tokenReplacingReader.read());
Assert.assertEquals('s', (char) tokenReplacingReader.read());
Assert.assertEquals(' ', (char) tokenReplacingReader.read());
Assert.assertEquals('a', (char) tokenReplacingReader.read());
Assert.assertEquals(' ', (char) tokenReplacingReader.read());
Assert.assertEquals('1', (char) tokenReplacingReader.read());
Assert.assertEquals('2', (char) tokenReplacingReader.read());
Assert.assertEquals('3', (char) tokenReplacingReader.read());
Assert.assertEquals(' ', (char) tokenReplacingReader.read());
Assert.assertEquals('a', (char) tokenReplacingReader.read());
Assert.assertEquals('n', (char) tokenReplacingReader.read());
Assert.assertEquals('d', (char) tokenReplacingReader.read());
Assert.assertEquals(' ', (char) tokenReplacingReader.read());
Assert.assertEquals(-1, tokenReplacingReader.read());
}
}
}