Statistics
| Revision:

gvsig-projects-pool / org.gvsig.vcsgis / trunk / org.gvsig.vcsgis / org.gvsig.vcsgis.lib / org.gvsig.vcsgis.lib.impl / src / test / java / org / gvsig / vcsgis / lib / impl / server / TestS01Entities.java @ 3375

History | View | Annotate | Download (4.14 KB)

1
package org.gvsig.vcsgis.lib.impl.server;
2

    
3
import java.io.ByteArrayInputStream;
4
import java.io.ByteArrayOutputStream;
5
import java.io.File;
6
import java.io.Writer;
7
import java.net.URL;
8
import java.util.Map;
9
import junit.framework.TestCase;
10
import static junit.framework.TestCase.assertEquals;
11
import org.apache.commons.io.FileUtils;
12
import org.gvsig.fmap.dal.feature.FeatureStore;
13
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
14
import org.gvsig.tools.dispose.DisposeUtils;
15
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
16
import org.gvsig.vcsgis.lib.SequentialCodeGenerator;
17
import org.gvsig.vcsgis.lib.VCSGisLocator;
18
import org.gvsig.vcsgis.lib.VCSGisManager;
19
import static org.gvsig.vcsgis.lib.VCSGisManager.ERR_NO_ERROR;
20
import org.gvsig.vcsgis.lib.impl.TestUtils;
21
import org.gvsig.vcsgis.lib.repository.VCSGisRepository;
22
import org.gvsig.vcsgis.lib.repository.remoteclient.requests.EntitiesRequestClient;
23
import org.gvsig.vcsgis.lib.server.handlers.EntitiesHandler;
24
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspace;
25
import org.slf4j.Logger;
26
import org.slf4j.LoggerFactory;
27

    
28
public class TestS01Entities extends TestCase {
29

    
30
    private static final Logger LOGGER = LoggerFactory.getLogger(TestS01Entities.class);
31

    
32
    public TestS01Entities(String testName) {
33
        super(testName);
34
    }
35

    
36
    @Override
37
    protected void setUp() throws Exception {
38
        super.setUp();
39
        new DefaultLibrariesInitializer().fullInitialize();
40
    }
41

    
42
    @Override
43
    protected void tearDown() throws Exception {
44
        super.tearDown();
45
    }
46

    
47
    // TODO add test methods here. The name must begin with 'test'. For example:
48
    // public void testHello() {}
49

    
50
    public void testCheckout() throws Exception {
51
        final String testid = "ServerEntities";
52
        final URL serverUrl = new URL("http://localhost:9810/");
53
        
54
        VCSGisManager manager = VCSGisLocator.getVCSGisManager();
55
        manager.setCodeGenerator(new SequentialCodeGenerator());
56
        
57
        
58
        JDBCServerExplorerParameters server = TestUtils.getServerExplorerParameters("srv-"+testid);
59
        File ws1file = TestUtils.getFile(FileUtils.getFile("test-dbs","ws-"+testid)); 
60
        
61
        int r = manager.initRepository(server, null);
62
        assertEquals("initRepository status", ERR_NO_ERROR, r);
63
        
64
        VCSGisRepository repo = manager.openRepository(server);
65
        TestUtils.h2sql_repository(repo);
66

    
67
        // -------------------------
68
        // Prepare the data in the repository
69
        r = manager.initWorkspace(ws1file, repo, "Test "+testid, null);
70
        assertEquals("initWorkspace status", ERR_NO_ERROR, r);
71
        
72
        VCSGisWorkspace ws1 = manager.openWorkspace(ws1file);
73
        assertNotNull("openWorkspace status", ws1);
74
        TestUtils.h2sql_workspace(ws1);
75

    
76
        FeatureStore store2 = TestUtils.openSourceStore2();
77
        ws1.add("test", store2, "text");
78
        assertEquals("ws1.add status", ERR_NO_ERROR, r);
79
        ws1.commit();
80
        assertEquals("ws1.commit status", ERR_NO_ERROR, r);
81

    
82
        DisposeUtils.disposeQuietly(store2);
83
        
84
        VCSGisRepository client = manager.openRepository(serverUrl);
85
        EntitiesRequestClient requestClient = (EntitiesRequestClient) client.createEntitiesRequest();
86
        EntitiesHandler handler = new EntitiesHandler(repo);
87
        
88
        Map<String, String> expected = TestUtils.getExpecteds("S01Entities.txt");
89
        
90
        ByteArrayOutputStream request_stream = new ByteArrayOutputStream(1024);
91
        LOGGER.debug("===: "+testid+"/produce request");
92
        requestClient.requestProducer(request_stream);
93
        LOGGER.debug("===: "+testid+"/request built");
94
        assertEquals("request data", expected.get("request"), request_stream.toString());
95
        
96
        ByteArrayInputStream is = new ByteArrayInputStream(request_stream.toByteArray());
97
        LOGGER.debug("===: "+testid+"/handle request");
98
        
99
        Writer response_writer = new ByteArrayWriter();
100
        handler.handle(null, null, is, response_writer);
101
        String response_s = response_writer.toString().trim();
102

    
103
        assertEquals("response data", expected.get("response").trim(), response_s);
104
        
105
        
106
    }
107
}