/** * Start time:10:54:50 2009-07-08<br> * Project: diameter-auto<br> * * @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski </a> * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> */ package org.mobicents.slee.resources.diameter.tests.acitivities.answers; import java.util.ArrayList; import net.java.slee.resource.diameter.base.events.DiameterMessage; import org.jdiameter.api.Answer; import org.jdiameter.api.IllegalDiameterStateException; import org.jdiameter.api.InternalException; import org.jdiameter.api.OverloadException; import org.jdiameter.api.Request; import org.jdiameter.api.RouteException; import org.jdiameter.api.Stack; import org.jdiameter.api.acc.events.AccountAnswer; import org.jdiameter.api.acc.events.AccountRequest; import org.jdiameter.api.app.AppAnswerEvent; import org.jdiameter.api.app.AppRequestEvent; import org.jdiameter.api.app.AppSession; import org.jdiameter.api.auth.events.AbortSessionAnswer; import org.jdiameter.api.auth.events.AbortSessionRequest; import org.jdiameter.api.auth.events.ReAuthAnswer; import org.jdiameter.api.auth.events.ReAuthRequest; import org.jdiameter.api.auth.events.SessionTermAnswer; import org.jdiameter.api.auth.events.SessionTermRequest; import org.jdiameter.api.cca.ServerCCASession; import org.jdiameter.api.cca.ServerCCASessionListener; import org.jdiameter.api.cca.events.JCreditControlAnswer; import org.jdiameter.api.cca.events.JCreditControlRequest; import org.jdiameter.common.api.app.cca.ICCAMessageFactory; import org.jdiameter.server.impl.app.cca.ServerCCASessionImpl; import org.junit.Test; import org.mobicents.diameter.dictionary.AvpDictionary; import org.mobicents.slee.resource.diameter.base.DiameterAvpFactoryImpl; import org.mobicents.slee.resource.diameter.base.DiameterMessageFactoryImpl; import org.mobicents.slee.resource.diameter.cca.CreditControlAVPFactoryImpl; import org.mobicents.slee.resource.diameter.cca.CreditControlMessageFactoryImpl; import org.mobicents.slee.resource.diameter.cca.CreditControlServerSessionImpl; import org.mobicents.slee.resource.diameter.sh.client.DiameterShAvpFactoryImpl; import org.mobicents.slee.resources.diameter.tests.factories.ShClientFactoriesTest; import org.mobicents.slee.resources.diameter.tests.factories.ShClientFactoriesTest.MyConfiguration; /** * Start time:10:54:50 2009-07-08<br> * Project: diameter-auto<br> * * @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a> * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> */ public class CCAAnswerCreationTest { private static String clientHost = "127.0.0.1"; private static String clientPort = "21812"; private static String clientURI = "aaa://" + clientHost + ":" + clientPort; private static String serverHost = "localhost"; private static String serverPort = "1812"; private static String serverURI = "aaa://" + serverHost + ":" + serverPort; private static String realmName = "mobicents.org"; private static DiameterAvpFactoryImpl diameterAvpFactory = new DiameterAvpFactoryImpl(); private static CreditControlAVPFactoryImpl ccaAvpFactory = new CreditControlAVPFactoryImpl(diameterAvpFactory); private static DiameterMessageFactoryImpl baseMessageFactory; private static Stack stack; static { stack = new org.jdiameter.client.impl.StackImpl(); try { stack.init(new MyConfiguration()); AvpDictionary.INSTANCE.parseDictionary(ShClientFactoriesTest.class.getClassLoader().getResourceAsStream("dictionary.xml")); } catch (Exception e) { throw new RuntimeException("Failed to initialize the stack."); } baseMessageFactory = new DiameterMessageFactoryImpl(stack); } @Test public void testCCAServerActivityAnswerCreation() throws Exception { ServerCCASessionImpl session = new ServerCCASessionImpl(new ICCAMessageFactoryImpl(), stack.getSessionFactory(), new LocalServerCCASessionListenerImpl()); CreditControlMessageFactoryImpl ccaMessageFactory = new CreditControlMessageFactoryImpl(baseMessageFactory,session.getSessions().get(0),stack,ccaAvpFactory); ArrayList<DiameterMessage> list = new ArrayList<DiameterMessage>(); list.add(ccaMessageFactory.createCreditControlRequest()); CreditControlServerSessionImpl activity = new CreditControlServerSessionImpl(ccaMessageFactory,ccaAvpFactory,session,5000,null,null,null); DiameterActivityAnswerCreationHelper.testAnswerCreation(activity, "lastRequest", list); } } class ICCAMessageFactoryImpl implements ICCAMessageFactory { /* * (non-Javadoc) * * @see * org.jdiameter.common.api.app.cca.ICCAMessageFactory#createCreditControlAnswer * (org.jdiameter.api.Answer) */ public JCreditControlAnswer createCreditControlAnswer(Answer answer) { // TODO Auto-generated method stub return null; } /* * (non-Javadoc) * * @seeorg.jdiameter.common.api.app.cca.ICCAMessageFactory# * createCreditControlRequest(org.jdiameter.api.Request) */ public JCreditControlRequest createCreditControlRequest(Request req) { // TODO Auto-generated method stub return null; } /* * (non-Javadoc) * * @see * org.jdiameter.common.api.app.cca.ICCAMessageFactory#createReAuthAnswer * (org.jdiameter.api.Answer) */ public ReAuthAnswer createReAuthAnswer(Answer answer) { // TODO Auto-generated method stub return null; } /* * (non-Javadoc) * * @see * org.jdiameter.common.api.app.cca.ICCAMessageFactory#createReAuthRequest * (org.jdiameter.api.Request) */ public ReAuthRequest createReAuthRequest(Request req) { // TODO Auto-generated method stub return null; } /* * (non-Javadoc) * * @see * org.jdiameter.common.api.app.cca.ICCAMessageFactory#getApplicationIds() */ public long[] getApplicationIds() { return new long[]{1}; } } class LocalServerCCASessionListenerImpl implements ServerCCASessionListener { /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doAbortSessionAnswer(org * .jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.auth.events.AbortSessionRequest, * org.jdiameter.api.auth.events.AbortSessionAnswer) */ public void doAbortSessionAnswer(ServerCCASession session, AbortSessionRequest request, AbortSessionAnswer answer) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doAbortSessionRequest( * org.jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.auth.events.AbortSessionRequest) */ public void doAbortSessionRequest(ServerCCASession session, AbortSessionRequest request) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doAccountingAnswer(org * .jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.acc.events.AccountRequest, * org.jdiameter.api.acc.events.AccountAnswer) */ public void doAccountingAnswer(ServerCCASession session, AccountRequest request, AccountAnswer answer) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doAccountingRequest(org * .jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.acc.events.AccountRequest) */ public void doAccountingRequest(ServerCCASession session, AccountRequest request) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doCreditControlRequest * (org.jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.cca.events.JCreditControlRequest) */ public void doCreditControlRequest(ServerCCASession session, JCreditControlRequest request) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doOtherEvent(org.jdiameter * .api.app.AppSession, org.jdiameter.api.app.AppRequestEvent, * org.jdiameter.api.app.AppAnswerEvent) */ public void doOtherEvent(AppSession session, AppRequestEvent request, AppAnswerEvent answer) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doReAuthAnswer(org.jdiameter * .api.cca.ServerCCASession, org.jdiameter.api.auth.events.ReAuthRequest, * org.jdiameter.api.auth.events.ReAuthAnswer) */ public void doReAuthAnswer(ServerCCASession session, ReAuthRequest request, ReAuthAnswer answer) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doSessionTerminationAnswer * (org.jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.auth.events.SessionTermRequest, * org.jdiameter.api.auth.events.SessionTermAnswer) */ public void doSessionTerminationAnswer(ServerCCASession session, SessionTermRequest request, SessionTermAnswer answer) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see * org.jdiameter.api.cca.ServerCCASessionListener#doSessionTerminationRequest * (org.jdiameter.api.cca.ServerCCASession, * org.jdiameter.api.auth.events.SessionTermRequest) */ public void doSessionTerminationRequest(ServerCCASession session, SessionTermRequest request) throws InternalException, IllegalDiameterStateException, RouteException, OverloadException { // TODO Auto-generated method stub } }