TestSmppServerHandler.java

  1. package fr.sii.ogham.testing.sms.simulator.cloudhopper;

  2. import java.util.HashSet;
  3. import java.util.Set;

  4. import com.cloudhopper.smpp.SmppConstants;
  5. import com.cloudhopper.smpp.SmppServerHandler;
  6. import com.cloudhopper.smpp.SmppServerSession;
  7. import com.cloudhopper.smpp.SmppSessionConfiguration;
  8. import com.cloudhopper.smpp.impl.PollableSmppSessionHandler;
  9. import com.cloudhopper.smpp.pdu.BaseBind;
  10. import com.cloudhopper.smpp.pdu.BaseBindResp;
  11. import com.cloudhopper.smpp.type.SmppProcessingException;

  12. public class TestSmppServerHandler implements SmppServerHandler {
  13.     private Set<SmppServerSession> sessions = new HashSet<>();
  14.     private PollableSmppSessionHandler sessionHandler = new PollableSmppSessionHandler();

  15.     private String systemId;
  16.     private String password;

  17.     public TestSmppServerHandler(String systemId, String password) {
  18.         super();
  19.         this.systemId = systemId;
  20.         this.password = password;
  21.     }

  22.     @Override
  23.     @SuppressWarnings("rawtypes")
  24.     public void sessionBindRequested(Long sessionId, SmppSessionConfiguration sessionConfiguration, final BaseBind bindRequest) throws SmppProcessingException {
  25.         // test name change of sessions
  26.         sessionConfiguration.setName("Test1");

  27.         if (!systemId.equals(bindRequest.getSystemId())) {
  28.             throw new SmppProcessingException(SmppConstants.STATUS_INVSYSID);
  29.         }

  30.         if (!password.equals(bindRequest.getPassword())) {
  31.             throw new SmppProcessingException(SmppConstants.STATUS_INVPASWD);
  32.         }
  33.     }

  34.     @Override
  35.     public void sessionCreated(Long sessionId, SmppServerSession session, BaseBindResp preparedBindResponse) {
  36.         sessions.add(session);
  37.         // need to do something it now (flag we're ready)
  38.         session.serverReady(sessionHandler);
  39.     }

  40.     @Override
  41.     public void sessionDestroyed(Long sessionId, SmppServerSession session) {
  42.         sessions.remove(session);
  43.     }

  44.     public Set<SmppServerSession> getSessions() {
  45.         return sessions;
  46.     }

  47.     public PollableSmppSessionHandler getSessionHandler() {
  48.         return sessionHandler;
  49.     }

  50.     public String getSystemId() {
  51.         return systemId;
  52.     }

  53.     public String getPassword() {
  54.         return password;
  55.     }
  56. }