blob: 9944cb1b84098cbb326919920907e015dba055bb [file] [log] [blame]
/*
* Copyright The Apache Software Foundation.
*
* 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 components;
import junit.framework.TestCase;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.ws.security.components.crypto.X509NameTokenizer;
/**
*
*/
public class TestX509NameTokenizer extends TestCase {
public TestX509NameTokenizer(String name) {
super(name);
}
public static Test suite() {
return new TestSuite(TestX509NameTokenizer.class);
}
public void
testEmptyX509NameTokenizer() {
checkEmpty(new X509NameTokenizer(""));
checkEmpty(new X509NameTokenizer(" "));
checkEmpty(new X509NameTokenizer(" \t \n \r\n"));
}
public void
testWellFormedX509NameTokenizer() {
checkTokenizer(
new X509NameTokenizer("foo"),
new String[] { "foo" }
);
checkTokenizer(
new X509NameTokenizer(" foo "),
new String[] { "foo" }
);
checkTokenizer(
new X509NameTokenizer(" foo, "),
new String[] { "foo", "" }
);
checkTokenizer(
new X509NameTokenizer(" foo\\, "),
new String[] { "foo\\,"}
);
checkTokenizer(
new X509NameTokenizer(" foo\\, bar "),
new String[] { "foo\\, bar"}
);
checkTokenizer(
new X509NameTokenizer(" \"foo,\" "),
new String[] { "\"foo,\""}
);
checkTokenizer(
new X509NameTokenizer("foo, bar"),
new String[] { "foo", "bar"}
);
checkTokenizer(
new X509NameTokenizer("\"foo bar\", gnu gnat"),
new String[] { "\"foo bar\"", "gnu gnat"}
);
checkTokenizer(
new X509NameTokenizer("foo\\ "),
new String[] { "foo\\ "}
);
checkTokenizer(
new X509NameTokenizer("foo\\\\ "),
new String[] { "foo\\\\"}
);
}
private void
checkEmpty(
final X509NameTokenizer tokenizer
) {
checkTokenizer(
tokenizer, new String[0]
);
}
private void
checkTokenizer(
final X509NameTokenizer tokenizer,
final String[] expected
) {
for (int i = 0; i < expected.length; ++i) {
assertTrue(tokenizer.hasMoreTokens());
assertEquals(tokenizer.nextToken(), expected[i]);
}
assertTrue(!tokenizer.hasMoreTokens());
assertEquals(tokenizer.nextToken(), "");
}
}