Project

General

Profile

Download (2.95 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin;
2

    
3
import javax.servlet.ServletContextEvent;
4
import javax.servlet.ServletContextListener;
5
import javax.servlet.ServletException;
6
import javax.sql.DataSource;
7

    
8
import org.easymock.EasyMock;
9
import org.junit.Assert;
10
import org.junit.BeforeClass;
11
import org.junit.Test;
12
import org.springframework.mock.web.MockServletConfig;
13
import org.springframework.mock.web.MockServletContext;
14
import org.springframework.web.context.ContextLoaderListener;
15
import org.unitils.UnitilsJUnit4;
16
import org.unitils.database.annotations.TestDataSource;
17
import org.unitils.database.annotations.Transactional;
18
import org.unitils.database.util.TransactionMode;
19

    
20
import com.vaadin.data.util.sqlcontainer.query.generator.filter.QueryBuilder;
21
import com.vaadin.server.DeploymentConfiguration;
22
import com.vaadin.server.ServiceException;
23
import com.vaadin.server.VaadinService;
24
import com.vaadin.server.VaadinServlet;
25
import com.vaadin.server.VaadinServletService;
26
import com.vaadin.server.VaadinSession;
27

    
28
import eu.etaxonomy.cdm.vaadin.util.CdmSQLStringDecorator;
29

    
30
@Transactional(TransactionMode.DISABLED)
31
public class CdmVaadinBaseTest extends UnitilsJUnit4 {
32

    
33
    private static MockServletContext servletContext;
34
    private static VaadinServlet vaadinServlet;
35
    private static VaadinServletService vaadinService;
36
    private static VaadinSession vaadinSession;
37
    private static boolean isVaadinServletEnvCreated = false;
38

    
39
    @TestDataSource
40
    protected DataSource dataSource;
41

    
42
    @BeforeClass
43
    public static void setup() {
44
    	if(!isVaadinServletEnvCreated) {
45
    		createNewServletEnvironment();
46
    	}
47
    	QueryBuilder.setStringDecorator(new CdmSQLStringDecorator());
48
    }
49

    
50
    public static void createNewServletEnvironment() {
51
		servletContext = new MockServletContext("/webapp");
52

    
53
        ServletContextListener listener = new ContextLoaderListener();
54
        ServletContextEvent event = new ServletContextEvent(servletContext);
55
		listener.contextInitialized(event);
56

    
57
		MockServletConfig servletConfig = new MockServletConfig(servletContext);
58
		vaadinServlet = new VaadinServlet();
59

    
60

    
61
		try {
62
			vaadinServlet.init(servletConfig);
63
		} catch (ServletException e) {
64
			throw new RuntimeException(e);
65
		}
66

    
67
		try {
68
			vaadinService = new VaadinServletService(vaadinServlet,
69
			        EasyMock.createMock(DeploymentConfiguration.class));
70
		} catch (ServiceException e) {
71
			throw new RuntimeException(e);
72
		}
73
		VaadinService.setCurrent(vaadinService);
74

    
75
		vaadinSession = new VaadinSession(vaadinService);
76
		VaadinSession.setCurrent(vaadinSession);
77

    
78
		isVaadinServletEnvCreated = true;
79
    }
80

    
81
    public DataSource getDataSource() {
82
    	return dataSource;
83
    }
84
    @Test
85
    public void checkVaadinVariables() {
86
		Assert.assertEquals(vaadinServlet, VaadinServlet.getCurrent());
87
		Assert.assertEquals(servletContext, VaadinServlet.getCurrent().getServletContext());
88
		Assert.assertEquals(vaadinSession, VaadinSession.getCurrent());
89
		Assert.assertEquals(vaadinService, VaadinService.getCurrent());
90
    }
91
}
    (1-1/1)