2014-10-05 12:17:25 +02:00
/ * *
*
2018-04-24 21:41:31 +02:00
* Copyright © 2014 - 2018 Florian Schmaus
2014-10-05 12:17:25 +02:00
*
* 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 org.jivesoftware.smack ;
import static org.junit.Assert.assertEquals ;
2016-10-31 10:45:38 +01:00
import java.net.InetAddress ;
import java.net.UnknownHostException ;
import java.util.Collections ;
2014-10-05 12:17:25 +02:00
import java.util.LinkedList ;
import java.util.List ;
import org.jivesoftware.smack.SmackException.ConnectionException ;
import org.jivesoftware.smack.util.dns.HostAddress ;
2017-06-14 17:12:43 +02:00
2014-10-05 12:17:25 +02:00
import org.junit.Test ;
2018-05-05 10:24:45 +02:00
import org.minidns.dnsname.DnsName ;
2014-10-05 12:17:25 +02:00
public class SmackExceptionTest {
@Test
2016-10-31 10:45:38 +01:00
public void testConnectionException ( ) throws UnknownHostException {
2014-10-05 12:17:25 +02:00
List < HostAddress > failedAddresses = new LinkedList < HostAddress > ( ) ;
2018-05-05 10:24:45 +02:00
DnsName host = DnsName . from ( " foo.bar.example " ) ;
2018-04-24 21:41:31 +02:00
InetAddress inetAddress = InetAddress . getByAddress ( host . toString ( ) , new byte [ ] { 0 , 0 , 0 , 0 } ) ;
2016-10-31 10:45:38 +01:00
List < InetAddress > inetAddresses = Collections . singletonList ( inetAddress ) ;
HostAddress hostAddress = new HostAddress ( host , 1234 , inetAddresses ) ;
2014-10-05 12:17:25 +02:00
hostAddress . setException ( new Exception ( " Failed for some reason " ) ) ;
failedAddresses . add ( hostAddress ) ;
2018-05-05 10:24:45 +02:00
host = DnsName . from ( " barz.example " ) ;
2018-04-24 21:41:31 +02:00
inetAddress = InetAddress . getByAddress ( host . toString ( ) , new byte [ ] { 0 , 0 , 0 , 0 } ) ;
2016-10-31 10:45:38 +01:00
inetAddresses = Collections . singletonList ( inetAddress ) ;
hostAddress = new HostAddress ( host , 5678 , inetAddresses ) ;
2014-10-05 12:17:25 +02:00
hostAddress . setException ( new Exception ( " Failed for some other reason " ) ) ;
failedAddresses . add ( hostAddress ) ;
ConnectionException connectionException = ConnectionException . from ( failedAddresses ) ;
String message = connectionException . getMessage ( ) ;
2016-01-07 19:22:03 +01:00
assertEquals ( " The following addresses failed: 'foo.bar.example:1234' failed because: java.lang.Exception: Failed for some reason, 'barz.example:5678' failed because: java.lang.Exception: Failed for some other reason " ,
2014-10-05 12:17:25 +02:00
message ) ;
}
}