package org.telegram.telegrambots.test; import org.apache.http.HttpResponse; import org.apache.http.ProtocolVersion; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicStatusLine; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.telegram.telegrambots.bots.DefaultBotOptions; import org.telegram.telegrambots.test.Fakes.FakeLongPollingBot; import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; import java.io.IOException; /** * @author Ruben Bermudez * @version 1.0 * @brief Test for DefaultBotSession */ public class TestDefaultBotSession { DefaultBotSession session; @Before public void setUp() throws Exception { session = getDefaultBotSession(); } @After public void tearDown() throws Exception { if (session != null && session.isRunning()) { session.stop(); } } @Test public void TestDefaultBotSessionIsNotRunningWhenCreated() throws Exception { Assert.assertFalse(session.isRunning()); } @Test public void TestDefaultBotSessionCanBeStartedAfterCreation() throws Exception { session = getDefaultBotSession(); session.start(); Assert.assertTrue(session.isRunning()); } @Test(expected = IllegalStateException.class) public void TestDefaultBotSessionCanNotBeStoppedAfterCreation() throws Exception { session = getDefaultBotSession(); session.stop(); } @Test(expected = IllegalStateException.class) public void TestDefaultBotSessionCanNotBeStartedIfAlreadyStarted() throws Exception { session = getDefaultBotSession(); session.start(); session.start(); } @Test public void TestDefaultBotSessionCanBeStoppedIfStarted() throws Exception { session = getDefaultBotSession(); session.start(); session.stop(); Assert.assertFalse(session.isRunning()); } @Test(expected = IllegalStateException.class) public void TestDefaultBotSessionCanNotBeStoppedIfAlreadyStopped() throws Exception { session = getDefaultBotSession(); session.start(); session.stop(); session.stop(); } private DefaultBotSession getDefaultBotSession() throws IOException { HttpResponse response = new BasicHttpResponse(new BasicStatusLine( new ProtocolVersion("HTTP", 1, 1), 200, "")); response.setStatusCode(200); response.setEntity(new StringEntity("{}")); HttpClient mockHttpClient = Mockito.mock(HttpClient.class); Mockito.when(mockHttpClient.execute(Mockito.any(HttpPost.class))) .thenReturn(response); DefaultBotSession session = new DefaultBotSession(); session.setCallback(new FakeLongPollingBot()); session.setOptions(new DefaultBotOptions()); return session; } }