/* * TeleStax, Open Source Cloud Communications * Copyright 2012, Telestax Inc and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.mobicents.smsc.domain; import static org.testng.Assert.*; import javax.slee.facilities.FacilityException; import javax.slee.facilities.TraceLevel; import org.mobicents.smsc.domain.SMSCShellExecutor; import org.mobicents.smsc.mproc.OrigType; import org.mobicents.smsc.mproc.impl.MProcRuleDefaultImpl; import org.mobicents.smsc.mproc.impl.MProcRuleFactoryDefault; import org.restcomm.smpp.SmppManagement; import org.testng.annotations.Test; /** * * @author sergey vetyutnev * */ public class SMSCShellExecutorTest { @Test(groups = { "ShellExecutor" }) public void testShellExecutor_DatabaseRoutingRules() throws Exception { // Date dt = new Date(); // String s1 = dt.toGMTString(); // // long l2 = Date.parse(s1); // Date d2 = new Date(l2); TT_PersistenceProxy sbb = new TT_PersistenceProxy(); boolean cassandraDbInited = sbb.testCassandraAccess(); if (!cassandraDbInited) return; SmscManagement smscManagement = SmscManagement.getInstance("Test"); smscManagement.setSmsRoutingRuleClass("org.mobicents.smsc.domain.DatabaseSmsRoutingRule"); SmppManagement smppManagement = SmppManagement.getInstance("Test"); smscManagement.setSmppManagement(smppManagement); smscManagement.start(); SMSCShellExecutor exec = new SMSCShellExecutor(); exec.setSmscManagement(smscManagement); String[] args = new String[2]; args[0] = "stat"; args[1] = "get"; exec.execute(args); args = "smsc databaserule update 2222 ttt1".split(" "); String s = exec.execute(args); args = "smsc databaserule update 2222 ttt2 networkid 2".split(" "); s = exec.execute(args); args = "smsc databaserule update 2222 ttt3 SIP".split(" "); s = exec.execute(args); args = "smsc databaserule update 2222 ttt4 SIP networkid 2".split(" "); s = exec.execute(args); args = "smsc databaserule get 2222".split(" "); s = exec.execute(args); args = "smsc databaserule get 2222 networkid 2".split(" "); s = exec.execute(args); args = "smsc databaserule get 2222 SIP".split(" "); s = exec.execute(args); args = "smsc databaserule get 2222 SIP networkid 2".split(" "); s = exec.execute(args); args = "smsc databaserule delete 2222 networkid 2".split(" "); s = exec.execute(args); args = "smsc databaserule delete 2222".split(" "); s = exec.execute(args); args = "smsc databaserule delete 2222 SIP".split(" "); s = exec.execute(args); args = "smsc databaserule delete 2222 SIP networkid 2".split(" "); s = exec.execute(args); smscManagement.stop(); } @Test(groups = { "ShellExecutor" }) public void testShellExecutor_MProc() throws Exception { TT_PersistenceProxy sbb = new TT_PersistenceProxy(); boolean cassandraDbInited = sbb.testCassandraAccess(); if (!cassandraDbInited) return; MProcManagement mProcManagement = MProcManagement.getInstance(); SmscManagement smscManagement = SmscManagement.getInstance("Test"); SmppManagement smppManagement = SmppManagement.getInstance("Test"); smscManagement.setSmppManagement(smppManagement); mProcManagement.setSmscManagement(smscManagement); smscManagement.registerRuleFactory(new MProcRuleFactoryDefault()); smscManagement.start(); SMSCShellExecutor exec = new SMSCShellExecutor(); exec.setSmscManagement(smscManagement); mProcManagement.mprocs.clear(); mProcManagement.store(); assertEquals(mProcManagement.mprocs.size(), 0); String[] args = "smsc mproc add mproc 10 desttonmask 2 destnpimask 3 destdigmask ^[0-9a-zA-Z]* originatingmask SS7_MO networkidmask 21 newnetworkid 22 newdestton 4 newdestnpi 5 adddestdigprefix 47 makecopy true".split(" "); String s = exec.execute(args); assertEquals(mProcManagement.mprocs.size(), 1); MProcRuleDefaultImpl rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); assertEquals(rule.getId(), 10); assertEquals(rule.getDestTonMask(), 2); assertEquals(rule.getDestNpiMask(), 3); assertEquals(rule.getDestDigMask(), "^[0-9a-zA-Z]*"); assertEquals(rule.getOriginatingMask(), OrigType.SS7_MO); assertEquals(rule.getNetworkIdMask(), 21); assertEquals(rule.getNewNetworkId(), 22); assertEquals(rule.getNewDestTon(), 4); assertEquals(rule.getNewDestNpi(), 5); assertEquals(rule.getAddDestDigPrefix(), "47"); assertTrue(rule.isMakeCopy()); args = "smsc mproc modify 10 newnetworkid 23".split(" "); s = exec.execute(args); assertEquals(mProcManagement.mprocs.size(), 1); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); assertEquals(rule.getId(), 10); assertEquals(rule.getDestTonMask(), 2); assertEquals(rule.getDestNpiMask(), 3); assertEquals(rule.getDestDigMask(), "^[0-9a-zA-Z]*"); assertEquals(rule.getOriginatingMask(), OrigType.SS7_MO); assertEquals(rule.getNetworkIdMask(), 21); assertEquals(rule.getNewNetworkId(), 23); assertEquals(rule.getNewDestTon(), 4); assertEquals(rule.getNewDestNpi(), 5); assertEquals(rule.getAddDestDigPrefix(), "47"); assertTrue(rule.isMakeCopy()); args = "smsc mproc modify 11 newnetworkid 24".split(" "); s = exec.execute(args); assertEquals(mProcManagement.mprocs.size(), 1); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); assertEquals(rule.getNewNetworkId(), 23); args = "smsc mproc add mproc 9 networkidmask 31 newnetworkid 32".split(" "); s = exec.execute(args); assertEquals(mProcManagement.mprocs.size(), 2); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(9); assertNotNull(rule); assertEquals(rule.getDestDigMask(), "-1"); assertNull(rule.getOriginatingMask()); assertEquals(rule.getNetworkIdMask(), 31); assertEquals(rule.getNewNetworkId(), 32); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(15); assertNull(rule); mProcManagement.mprocs.clear(); assertEquals(mProcManagement.mprocs.size(), 0); mProcManagement.load(); assertEquals(mProcManagement.mprocs.size(), 2); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); assertEquals(rule.getId(), 10); assertEquals(rule.getDestTonMask(), 2); assertEquals(rule.getDestNpiMask(), 3); assertEquals(rule.getDestDigMask(), "^[0-9a-zA-Z]*"); assertEquals(rule.getOriginatingMask(), OrigType.SS7_MO); assertEquals(rule.getNetworkIdMask(), 21); assertEquals(rule.getNewNetworkId(), 23); assertEquals(rule.getNewDestTon(), 4); assertEquals(rule.getNewDestNpi(), 5); assertEquals(rule.getAddDestDigPrefix(), "47"); assertTrue(rule.isMakeCopy()); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(9); assertNotNull(rule); assertEquals(rule.getDestDigMask(), "-1"); assertNull(rule.getOriginatingMask()); assertEquals(rule.getNetworkIdMask(), 31); assertEquals(rule.getNewNetworkId(), 32); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(15); assertNull(rule); args = "smsc mproc show 9".split(" "); s = exec.execute(args); args = "smsc mproc show".split(" "); s = exec.execute(args); args = "smsc mproc remove 9".split(" "); s = exec.execute(args); assertEquals(mProcManagement.mprocs.size(), 1); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(10); assertNotNull(rule); rule = (MProcRuleDefaultImpl) mProcManagement.getMProcRuleById(9); assertNull(rule); mProcManagement.mprocs.clear(); smscManagement.stop(); } // @Test(groups = { "aaa" }) // public void testA1() throws Exception { // // try { // String urlString = "file:///c:/JavaT/jboss_r/README.txt"; // URL url = new URL(urlString); // URLConnection conn = url.openConnection(); // InputStream is = conn.getInputStream(); // } catch (Exception ee) { // int gg = 0; // gg++; // } // // } // @Test(groups = { "ShellExecutor" }) // public void testSchedulerRA() throws Exception { // SchedulerResourceAdaptorProxy ra = new SchedulerResourceAdaptorProxy(); // // SmscPropertiesManagement.getInstance().setFetchMaxRows(4); // // while (true) { // ra.onTimerTick(); // } // } // class SchedulerResourceAdaptorProxy extends SchedulerResourceAdaptor { // // public SchedulerResourceAdaptorProxy() throws Exception { // this.tracer = new TracerProxy(); // SmscPropertiesManagement prop = SmscPropertiesManagement.getInstance("Test"); // String[] hostsArr = prop.getHosts().split(":"); // String host = hostsArr[0]; // int port = Integer.parseInt(hostsArr[1]); // // this.dbOperations_C2 = DBOperations_C2.getInstance(); // this.dbOperations_C2.start(host, port, prop.getKeyspaceName(), prop.getFirstDueDelay(), prop.getReviseSecondsOnSmscStart(), // prop.getProcessingSmsSetTimeout()); // } // // public void onTimerTick() { // super.onTimerTick(); // } // } class TracerProxy implements javax.slee.facilities.Tracer { @Override public void config(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void config(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void fine(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void fine(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void finer(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void finer(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void finest(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void finest(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public String getParentTracerName() { // TODO Auto-generated method stub return null; } @Override public TraceLevel getTraceLevel() throws FacilityException { // TODO Auto-generated method stub return null; } @Override public String getTracerName() { // TODO Auto-generated method stub return null; } @Override public void info(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void info(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public boolean isConfigEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isFineEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isFinerEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isFinestEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isInfoEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isSevereEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isTraceable(TraceLevel arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub return false; } @Override public boolean isWarningEnabled() throws FacilityException { // TODO Auto-generated method stub return false; } @Override public void severe(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void severe(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void trace(TraceLevel arg0, String arg1) throws NullPointerException, IllegalArgumentException, FacilityException { // TODO Auto-generated method stub } @Override public void trace(TraceLevel arg0, String arg1, Throwable arg2) throws NullPointerException, IllegalArgumentException, FacilityException { // TODO Auto-generated method stub } @Override public void warning(String arg0) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } @Override public void warning(String arg0, Throwable arg1) throws NullPointerException, FacilityException { // TODO Auto-generated method stub } } }