Project

General

Profile

Download (3.38 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

    
7
import org.easymock.EasyMock;
8
import org.junit.Assert;
9
import org.junit.BeforeClass;
10
import org.junit.Ignore;
11
import org.junit.runner.RunWith;
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.DatabaseUnitils;
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
import unitils.AlternativeUnitilsJUnit4TestClassRunner;
30

    
31
@Ignore
32
@RunWith(AlternativeUnitilsJUnit4TestClassRunner.class)
33
@Transactional(TransactionMode.DISABLED)
34
public class CdmVaadinBaseTest extends UnitilsJUnit4 {
35

    
36
    private static MockServletContext servletContext;
37
    private static VaadinServlet vaadinServlet;
38
    private static VaadinServletService vaadinService;
39
    private static VaadinSession vaadinSession;
40
    private static boolean isVaadinServletEnvCreated = false;
41

    
42

    
43
    @BeforeClass
44
    public static void setup() {
45
        DatabaseUnitils.disableConstraints();
46

    
47
    	if(!isVaadinServletEnvCreated) {
48
    		createNewServletEnvironment();
49
    	}
50
    	QueryBuilder.setStringDecorator(new CdmSQLStringDecorator());
51

    
52
    	Assert.assertNotNull(vaadinServlet);
53
    	Assert.assertEquals(vaadinServlet, VaadinServlet.getCurrent());
54

    
55
    	Assert.assertNotNull(servletContext);
56
        Assert.assertEquals(servletContext, VaadinServlet.getCurrent().getServletContext());
57

    
58
        Assert.assertNotNull(vaadinSession);
59
        Assert.assertEquals(vaadinSession, VaadinSession.getCurrent());
60

    
61
        Assert.assertNotNull(vaadinService);
62
        Assert.assertEquals(vaadinService, VaadinService.getCurrent());
63
    }
64

    
65

    
66
    public static void createNewServletEnvironment() {
67
		servletContext = new MockServletContext("/webapp");
68

    
69
        ServletContextListener listener = new ContextLoaderListener();
70
        ServletContextEvent event = new ServletContextEvent(servletContext);
71
		listener.contextInitialized(event);
72

    
73
		MockServletConfig servletConfig = new MockServletConfig(servletContext);
74
		vaadinServlet = new VaadinServlet();
75

    
76

    
77
		try {
78
			vaadinServlet.init(servletConfig);
79
		} catch (ServletException e) {
80
			throw new RuntimeException(e);
81
		}
82

    
83
		try {
84
			vaadinService = new VaadinServletService(vaadinServlet,
85
			        EasyMock.createMock(DeploymentConfiguration.class));
86
		} catch (ServiceException e) {
87
			throw new RuntimeException(e);
88
		}
89
		VaadinService.setCurrent(vaadinService);
90

    
91
		vaadinSession = new MockVaadinSession(vaadinService);
92
		VaadinSession.setCurrent(vaadinSession);
93

    
94
		isVaadinServletEnvCreated = true;
95
    }
96

    
97
    public static  class MockVaadinSession extends VaadinSession {
98
        MockVaadinSession(VaadinService service) {
99
            super(service);
100
        }
101

    
102
        @Override
103
        public boolean hasLock() {
104
            return true;
105
        }
106
    }
107
}
    (1-1/1)