![JAR search and dependency download from the Maven repository](/logo.png)
com.github.mikesafonov.smpp.server.MockSmppServer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of smpp-server-mock-core Show documentation
Show all versions of smpp-server-mock-core Show documentation
Smpp server to test smpp connection
package com.github.mikesafonov.smpp.server;
import com.cloudhopper.smpp.impl.DefaultSmppServer;
import com.cloudhopper.smpp.pdu.CancelSm;
import com.cloudhopper.smpp.pdu.PduRequest;
import com.cloudhopper.smpp.pdu.SubmitSm;
import com.cloudhopper.smpp.type.SmppChannelException;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import static com.github.mikesafonov.smpp.server.Utils.checkPortOrGetFree;
import static com.github.mikesafonov.smpp.server.Utils.randomUuidName;
/**
* SMPP server
*
* @author Mike Safonov
*/
public class MockSmppServer {
public static final int RANDOM_PORT = -1;
public static final String DEFAULT_SYSTEM_ID = "mockSmppServer";
public static final String DEFAULT_PASSWORD = "password";
@Getter
private final String name;
@Getter
private final int port;
@Getter
private final String systemId;
@Getter
private final String password;
private final MockSmppServerHandler handler;
private final DefaultSmppServer smppServer;
@Getter
private boolean started = false;
public MockSmppServer() {
this(randomUuidName());
}
public MockSmppServer(String name) {
this(name, RANDOM_PORT);
}
public MockSmppServer(int port) {
this(randomUuidName(), port);
}
public MockSmppServer(String name, int port) {
this(name, port, DEFAULT_SYSTEM_ID, DEFAULT_PASSWORD);
}
public MockSmppServer(String systemId, String password) {
this(randomUuidName(), systemId, password);
}
public MockSmppServer(String name, String systemId, String password) {
this(name, RANDOM_PORT, systemId, password);
}
public MockSmppServer(int port, String systemId, String password) {
this(randomUuidName(), port, systemId, password);
}
public MockSmppServer(String name, int port, String systemId, String password) {
this.name = name;
this.port = checkPortOrGetFree(port);
this.systemId = systemId;
this.password = password;
this.handler = new MockSmppServerHandler(systemId, password);
this.smppServer = new DefaultSmppServer(new MockSmppServerConfiguration(this.port, systemId),
handler, Executors.newCachedThreadPool());
}
//test only
MockSmppServer(int port, String systemId, String password,
MockSmppServerHandler handler, DefaultSmppServer smppServer) {
this.name = randomUuidName();
this.port = port;
this.systemId = systemId;
this.password = password;
this.handler = handler;
this.smppServer = smppServer;
}
/**
* Start mock server
*/
public void start() {
if (started) {
return;
}
try {
smppServer.start();
started = true;
} catch (SmppChannelException e) {
throw new RuntimeException(e);
}
}
/**
* Stop mock server
*/
public void stop() {
smppServer.stop();
started = false;
}
public int getCountRequests() {
return handler.getSessionHandler().countTotalMessages();
}
/**
* @return list of all received {@link PduRequest}
*/
public List getRequests() {
return new ArrayList<>(handler.getSessionHandler().getReceivedPduRequests());
}
/**
* @return list of received {@link SubmitSm}
*/
public List getSubmitSmMessages() {
return new ArrayList<>(handler.getSessionHandler().getSubmitSms());
}
/**
* @return list of received {@link CancelSm}
*/
public List getCancelSmMessages() {
return new ArrayList<>(handler.getSessionHandler().getCancelSms());
}
/**
* @return server description (name, port, systemId)
*/
public String getDescription() {
return "Smpp server[name: " + name + ", port: " + port + ", systemId: " + systemId + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy