test.tck.factory.AddressFactoryTest Maven / Gradle / Ivy
package test.tck.factory;
import java.text.ParseException;
import javax.sip.address.*;
import junit.framework.*;
import test.tck.*;
public class AddressFactoryTest extends FactoryTestHarness {
public AddressFactoryTest() {
super("AddressFactoryTest");
}
protected javax.sip.address.URI createTiURI(String uriString) {
javax.sip.address.URI uri = null;
try {
uri = tiAddressFactory.createURI(uriString);
assertTrue(uri != null);
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
return uri;
}
protected javax.sip.address.URI createRiURI(String uriString) {
javax.sip.address.URI uri = null;
try {
uri = riAddressFactory.createURI(uriString);
} catch (Exception ex) {
throw new TckInternalError(ex.getMessage());
}
return uri;
}
protected javax.sip.address.SipURI createTiSipURI(
String name,
String address) {
SipURI sipUri = null;
try {
sipUri = tiAddressFactory.createSipURI(name, address);
assertNotNull(sipUri);
} catch (Exception ex) {
ex.printStackTrace();
throw new TiUnexpectedError(ex.getMessage());
}
return sipUri;
}
protected javax.sip.address.SipURI createRiSipURI(
String name,
String address) {
SipURI sipUri = null;
try {
sipUri = riAddressFactory.createSipURI(name, address);
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
return sipUri;
}
protected javax.sip.address.TelURL createTiTelURL(String phoneNumber) {
TelURL telUrl = null;
try {
telUrl = tiAddressFactory.createTelURL(phoneNumber);
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
return telUrl;
}
protected javax.sip.address.TelURL createRiTelURLFromTiTelURL(
TelURL tiTelURL) {
TelURL telUrl = null;
try {
// The API has a bug here - there is no way to retrieve the
// phone-context parameter. This will be fixed in the next release.
//int start = tiTelURL.toString().indexOf(':');
//String phoneNumber = tiTelURL.toString().substring(start+1).trim();
// String phoneNumber = tiTelURL.getPhoneContext();// JvB: wrong
String phoneNumber = tiTelURL.getPhoneNumber();
telUrl = riAddressFactory.createTelURL(phoneNumber);
telUrl.setGlobal(tiTelURL.isGlobal());
// JvB: set to 'null' should remove it, fixed in impl
telUrl.setPhoneContext( tiTelURL.getPhoneContext() );
} catch (Exception ex) {
ex.printStackTrace();
throw new TiUnexpectedError(ex.getMessage());
}
return telUrl;
}
protected javax.sip.address.TelURL createRiTelURL(String phoneNumber) {
TelURL telUrl = null;
try {
telUrl = riAddressFactory.createTelURL(phoneNumber);
} catch (Exception ex) {
throw new TckInternalError(ex.getMessage());
}
return telUrl;
}
protected javax.sip.address.Address createAddress(String address) {
javax.sip.address.Address addr = null;
try {
addr = tiAddressFactory.createAddress(address);
assertTrue(addr != null);
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
return addr;
}
protected javax.sip.address.Address createAddress(
javax.sip.address.URI uri) {
javax.sip.address.Address addr = null;
try {
System.out.println("Uri = " + uri);
addr = tiAddressFactory.createAddress(uri);
System.out.println("addr = " + addr);
System.out.println("createAddress returns " + tiAddressFactory.createAddress(uri.toString()));
assertTrue(
addr.equals(tiAddressFactory.createAddress(uri.toString())));
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
return addr;
}
protected javax.sip.address.Address createRiAddress(
javax.sip.address.URI uri) {
javax.sip.address.Address addr = null;
try {
addr = riAddressFactory.createAddress(uri);
} catch (Exception ex) {
throw new TckInternalError(ex.getMessage());
}
return addr;
}
protected javax.sip.address.Address createRiAddress(String address) {
javax.sip.address.Address addr = null;
try {
addr = riAddressFactory.createAddress(address);
assertTrue(addr != null);
} catch (Exception ex) {
ex.printStackTrace();
throw new TckInternalError(ex.getMessage());
}
return addr;
}
protected javax.sip.address.Address createRiAddressFromTiAddress(
Address tiAddress)
throws TiUnexpectedError {
try {
return riAddressFactory.createAddress(tiAddress.toString());
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
}
}
public void testStar() {
try {
Address star = tiAddressFactory.createAddress( "*" );
assertTrue( star.isWildcard() );
assertTrue( star.getURI().isSipURI() );
assertEquals( "*", ((SipURI) star.getURI()).getUser() );
} catch (ParseException pe) {
pe.printStackTrace();
fail( pe.getMessage() );
}
}
public void testAddressFactory() {
try {
for (int i = 0; i < urls.length; i++) {
javax.sip.address.URI uri = this.createTiURI(urls[i]);
assertNotNull(uri);
javax.sip.address.Address tiAddress = this.createAddress(uri);
assertNotNull(tiAddress);
javax.sip.address.URI riUri = this.createRiURI(urls[i]);
javax.sip.address.Address riAddress =
this.createRiAddress(riUri);
tiAddress = this.createRiAddress(tiAddress.toString());
assertEquals( riAddress,
this.createRiAddressFromTiAddress(tiAddress) );
}
for (int i = 0; i < hosts.length; i++) {
javax.sip.address.SipURI tiSipURI;
javax.sip.address.SipURI riSipURI;
tiSipURI = this.createTiSipURI(null, hosts[i]);
assertTrue(tiSipURI != null);
assertTrue(tiSipURI.isSipURI());
assertTrue(!tiSipURI.isSecure());
assertTrue(
(
(SipURI) tiAddressFactory.createURI(
"sip:" + hosts[i])).equals(
tiSipURI));
riSipURI = this.createRiSipURI(null, hosts[i]);
javax.sip.address.Address tiAddress =
this.createAddress(tiSipURI);
assertTrue(tiAddress != null);
javax.sip.address.Address riAddress =
this.createRiAddress(riSipURI);
assertTrue(
riAddress.equals(
this.createRiAddressFromTiAddress(tiAddress)));
tiSipURI = this.createTiSipURI("jaintck", hosts[i]);
assertTrue(tiSipURI != null);
assertTrue(tiSipURI.isSipURI());
assertTrue(!tiSipURI.isSecure());
assertTrue(
(
(SipURI) tiAddressFactory.createURI(
"sip:jaintck@" + hosts[i])).equals(
tiSipURI));
tiAddress = this.createAddress(tiSipURI);
assertTrue(tiAddress != null);
riSipURI = this.createRiSipURI("jaintck", hosts[i]);
riAddress = this.createRiAddress(riSipURI);
assertTrue(
riAddress.equals(
this.createRiAddressFromTiAddress(tiAddress)));
}
for (int i = 0; i < phoneNumbers.length; i++) {
javax.sip.address.TelURL tiTelUrl =
this.createTiTelURL(phoneNumbers[i]);
assertTrue(tiTelUrl != null);
javax.sip.address.TelURL riTelUrl =
this.createRiTelURL(phoneNumbers[i]);
System.out.println( "TI:" + tiTelUrl );
System.out.println( "RI:" + riTelUrl );
assertEquals(
riTelUrl, createRiTelURLFromTiTelURL(tiTelUrl) );
}
for (int i = 0; i < telUrls.length; i++) {
javax.sip.address.TelURL telUrl =
(TelURL) this.createTiURI(telUrls[i]);
assertTrue(telUrl != null);
int start = telUrl.toString().indexOf(':');
String phone = telUrl.toString().substring(start+1).trim();
javax.sip.address.TelURL tiTelUrl = this.createTiTelURL(phone);
tiTelUrl.setGlobal(telUrl.isGlobal());
assertTrue(telUrl.equals(tiTelUrl));
}
} catch (Exception ex) {
throw new TiUnexpectedError(ex.getMessage());
} finally {
logTestCompleted("testAddressFactory()");
}
}
public void testTelURL() throws Exception {
// JvB: This weird-looking tel: URL is actually valid, syntactically speaking
URI telURL = tiAddressFactory.createURI( "tel:0123456789ABCDEF#*-.();isub=/:-_.!~*'();phone-context=+123-.();-=[]/:" );
assertTrue( telURL instanceof TelURL );
TelURL t = (TelURL) telURL;
assertEquals( "0123456789ABCDEF#*-.()", t.getPhoneNumber() );
assertEquals( "+123-.()", t.getPhoneContext() );
assertEquals( "/:-_.!~*'()", t.getIsdnSubAddress() );
assertEquals( "[]/:", t.getParameter("-") );
}
public void setUp() {
}
public static Test suite() {
return new TestSuite(AddressFactoryTest.class);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(AddressFactoryTest.class);
}
}