/protocols/ss7/isup/isup-impl/src/test/java/org/mobicents/protocols/ss7/isup/impl/message/parameter/TerminatingNetworkRoutingNumberTest.java
Java | 101 lines | 41 code | 15 blank | 45 comment | 4 complexity | 6da64fb3d114140fbb7279796f3c7b9b MD5 | raw file
1/* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2011, Red Hat, Inc. and individual contributors 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 23/** 24 * Start time:21:30:13 2009-04-26<br> 25 * Project: mobicents-isup-stack<br> 26 * 27 * @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski 28 * </a> 29 * 30 */ 31package org.mobicents.protocols.ss7.isup.impl.message.parameter; 32 33import java.io.ByteArrayOutputStream; 34import java.io.IOException; 35import java.lang.reflect.InvocationTargetException; 36 37import org.mobicents.protocols.ss7.isup.ParameterException; 38import org.testng.annotations.Test; 39 40/** 41 * Start time:21:30:13 2009-04-26<br> 42 * Project: mobicents-isup-stack<br> 43 * 44 * @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski 45 * </a> 46 */ 47public class TerminatingNetworkRoutingNumberTest extends ParameterHarness { 48 49 public TerminatingNetworkRoutingNumberTest() throws IOException { 50 super(); 51 super.goodBodies.add(getBody(false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, getSixDigits(),getSixDigits().length)); 52 super.goodBodies.add(getBody(false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, null,-1)); 53 super.goodBodies.add(getBody(false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, null,0)); 54 55 super.badBodies.add(getBody(false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, new byte[8],8)); 56 //The diff is that this is odd - only 15 digits :) 57 super.goodBodies.add(getBody(true, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, new byte[8],8)); 58 } 59 @Test(groups = { "functional.encode","functional.decode","parameter"}) 60 public void testBody1EncodedValues() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, IOException, ParameterException { 61 TerminatingNetworkRoutingNumberImpl bci = new TerminatingNetworkRoutingNumberImpl(getBody(false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, 62 getSixDigits(),getSixDigits().length)); 63 64 String[] methodNames = { "isOddFlag", "getNumberingPlanIndicator", "getNatureOfAddressIndicator", "getAddress", "getTnrnLengthIndicator" }; 65 Object[] expectedValues = { false, TerminatingNetworkRoutingNumberImpl._NPI_ISDN, TerminatingNetworkRoutingNumberImpl._NAI_NATIONAL_SN, getSixDigitsString(), 4 }; 66 super.testValues(bci, methodNames, expectedValues); 67 } 68 69 private byte[] getBody(boolean isODD, int npiIsdn, int naiNationalSn, byte[] sixDigits, int tnrL) throws IOException { 70 71 ByteArrayOutputStream bos = new ByteArrayOutputStream(); 72 int v = 0; 73 if (isODD) 74 v |= 0x80; 75 v |= npiIsdn << 4; 76 //v |= sixDigits.length + 1; 77 v |= tnrL+1; 78 79 bos.write(v); 80 if(tnrL!=-1) 81 bos.write(naiNationalSn); 82 if(sixDigits!=null && sixDigits.length>0) 83 bos.write(sixDigits); 84 85 return bos.toByteArray(); 86 } 87 88 /* 89 * (non-Javadoc) 90 * 91 * @see 92 * org.mobicents.isup.messages.parameters.ParameterHarness#getTestedComponent 93 * () 94 */ 95 96 public AbstractISUPParameter getTestedComponent() { 97 return new TerminatingNetworkRoutingNumberImpl("10", 1, 1); 98 } 99 100 101}