public class KeepAliveSessionStrategyTest extends Object implements Supplier<SessionStrategyTestHelper.TestContext>
Modifier and Type | Class and Description |
---|---|
(package private) class |
KeepAliveSessionStrategyTest.KeepAliveTestContext |
Modifier and Type | Field and Description |
---|---|
(package private) List<com.cloudhopper.smpp.SmppSession> |
allSessions |
(package private) com.cloudhopper.smpp.SmppClient |
client1 |
(package private) com.cloudhopper.smpp.SmppClient |
client2 |
(package private) com.cloudhopper.smpp.SmppClient |
client3 |
(package private) List<com.cloudhopper.smpp.SmppClient> |
clients |
(package private) List<ScheduledFuture<?>> |
enquireLinkTasks |
LoggingTestRule |
loggingRule |
org.mockito.junit.MockitoRule |
mockito |
(package private) SmppClientSupplier |
supplier |
(package private) Supplier<ScheduledExecutorService> |
timerFactory |
(package private) List<ScheduledExecutorService> |
timers |
Constructor and Description |
---|
KeepAliveSessionStrategyTest() |
Modifier and Type | Method and Description |
---|---|
void |
cleanup() |
SessionStrategyTestHelper.TestContext |
get() |
void |
keepAlive()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
keepAliveButEnquireLinkTimeout()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(200ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink failure (400ms) ├─────────────────────────────────────────────>│
: │ response │
: │ ├─┐ wait(300ms)
: ├─┐ timeout (100ms) │ │
: │<┘ │ │
│ │ │ :
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
keepAliveButSendFailsDueToSessionClosedByServer()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
│ │ ├─┐ stop() (?) session is closed by the server => need a new session
│ │ │<┘
│ │ │
├─┐ send(Sms(can't be sent)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ /!\ failure │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│ (?) automatic reconnection (may be tried several times)
│ │ │
: │ ├─┐ start()
: │ │<┘
: wait for reconnection │ │
: │ │
: │ │
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
├─┐ send(Sms(sms content 3 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
keepAliveButSessionClosedByServer()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ ├─┐ start()
: │ │ │<┘
: │ │ │
: wait for EnquireLink failure (350ms) │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
keepAliveButSessionClosedByServerAndCantReconnect()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(200ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ │
: │ │ │
: │ │ │
: wait for maximum reconnection attempts │<┘ │
: (1500ms) │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
: : │
: : │
: unbind [session 1] : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : disconnected │
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: connect (tried 5 times) : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : /!\ failure │ (?) Retried 5 times
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: : │
: still waiting for maximum attempts : │
: : │
: : │
├─┐ clean() │ │
│<┘ │ │
│ │ │
│ │ ├─┐ start()
│ │ │<┘
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
keepAliveConnectedAtStartup()
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ init │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
|
void |
setup() |
public final LoggingTestRule loggingRule
public final org.mockito.junit.MockitoRule mockito
@Spy com.cloudhopper.smpp.SmppClient client1
@Spy com.cloudhopper.smpp.SmppClient client2
@Spy com.cloudhopper.smpp.SmppClient client3
List<com.cloudhopper.smpp.SmppClient> clients
List<com.cloudhopper.smpp.SmppSession> allSessions
@Spy SmppClientSupplier supplier
List<ScheduledExecutorService> timers
List<ScheduledFuture<?>> enquireLinkTasks
@Spy Supplier<ScheduledExecutorService> timerFactory
public void setup() throws IOException
IOException
public void cleanup() throws SmppServerException
SmppServerException
public void keepAlive() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public void keepAliveButEnquireLinkTimeout() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(200ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink failure (400ms) ├─────────────────────────────────────────────>│
: │ response │
: │ ├─┐ wait(300ms)
: ├─┐ timeout (100ms) │ │
: │<┘ │ │
│ │ │ :
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public void keepAliveButSessionClosedByServer() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ ├─┐ start()
: │ │ │<┘
: │ │ │
: wait for EnquireLink failure (350ms) │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: : │
: still waiting : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public void keepAliveButSessionClosedByServerAndCantReconnect() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(200ms) ├─┐ stop() (?) session is closed by the server => need a new session
: │ │ │<┘
: │ │ │
: │ │ │
: │ │ │
: wait for maximum reconnection attempts │<┘ │
: (1500ms) │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ /!\ failure │ (?) ClosedChannelException
: │<─────────────────────────────────────────────┤
: │ │
: : │
: : │
: unbind [session 1] : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : disconnected │
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: connect (tried 5 times) : │
:────────────────────────────────────────────────────────────────────────────────────────────>│
: : /!\ failure │ (?) Retried 5 times
:<────────────────────────────────────────────────────────────────────────────────────────────┤
: : │
: : │
: still waiting for maximum attempts : │
: : │
: : │
├─┐ clean() │ │
│<┘ │ │
│ │ │
│ │ ├─┐ start()
│ │ │<┘
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public void keepAliveConnectedAtStartup() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ init │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
├─┐ send(Sms(sms content 2 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: wait for 2 EnquireLink sent (650ms) : │
: : │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: : │
: : │
│ │ │
├─┐ send(Sms(sms content 3 / session 1)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public void keepAliveButSendFailsDueToSessionClosedByServer() throws Exception
┌─────────┐ ┌─────────────────┐ ┌─────────┐
│ Client │ │ EnquireLinkTask │ │ Server │
└────┬────┘ └────────┬────────┘ └────┬────┘
│ │ ├─┐ start()
│ │ │<┘
│ │ │
│ │ │
├─┐ send(Sms(sms content 1 / session 1)) │ │
│<┘ │ │
│ connect [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
│ │ ├─┐ stop() (?) session is closed by the server => need a new session
│ │ │<┘
│ │ │
├─┐ send(Sms(can't be sent)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ /!\ failure │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ unbind [session 1] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ disconnected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ connect [session 2] │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│ (?) automatic reconnection (may be tried several times)
│ │ │
: │ ├─┐ start()
: │ │<┘
: wait for reconnection │ │
: │ │
: │ │
│ │ connected │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
├─┐ send(Sms(sms content 2 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
│ │ │
│ │ │
: ├─┐ wait(300ms) │
: │<┘ │
: │ send EnquireLink │
: wait for EnquireLink sent (350ms) ├─────────────────────────────────────────────>│
: │ response │
: │<─────────────────────────────────────────────┤
: │ │
│ │ │
│ │ │
├─┐ send(Sms(sms content 3 / session 2)) │ │
│<┘ │ │
│ send SubmitSm │ │
├────────────────────────────────────────────────────────────────────────────────────────────>│
│ │ response │
│<────────────────────────────────────────────────────────────────────────────────────────────┤
Exception
public SessionStrategyTestHelper.TestContext get()
get
in interface Supplier<SessionStrategyTestHelper.TestContext>
Copyright © 2021. All rights reserved.