You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VaadinServiceTest.java 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Copyright 2000-2014 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.server;
  17. import javax.servlet.ServletConfig;
  18. import javax.servlet.ServletException;
  19. import javax.servlet.http.HttpSessionBindingEvent;
  20. import org.easymock.EasyMock;
  21. import org.junit.Assert;
  22. import org.junit.Test;
  23. /**
  24. *
  25. * @author Vaadin Ltd
  26. */
  27. public class VaadinServiceTest {
  28. private class TestSessionDestroyListener implements SessionDestroyListener {
  29. int callCount = 0;
  30. @Override
  31. public void sessionDestroy(SessionDestroyEvent event) {
  32. callCount++;
  33. }
  34. }
  35. @Test
  36. public void testFireSessionDestroy() throws ServletException {
  37. ServletConfig servletConfig = new MockServletConfig();
  38. VaadinServlet servlet = new VaadinServlet();
  39. servlet.init(servletConfig);
  40. VaadinService service = servlet.getService();
  41. TestSessionDestroyListener listener = new TestSessionDestroyListener();
  42. service.addSessionDestroyListener(listener);
  43. MockVaadinSession vaadinSession = new MockVaadinSession(service);
  44. service.fireSessionDestroy(vaadinSession);
  45. Assert.assertEquals(
  46. "'fireSessionDestroy' method doesn't call 'close' for the session",
  47. 1, vaadinSession.getCloseCount());
  48. vaadinSession.valueUnbound(EasyMock
  49. .createMock(HttpSessionBindingEvent.class));
  50. Assert.assertEquals("'fireSessionDestroy' method may not call 'close' "
  51. + "method for closing session", 1,
  52. vaadinSession.getCloseCount());
  53. Assert.assertEquals("SessionDestroyListeners not called exactly once",
  54. 1, listener.callCount);
  55. }
  56. }