Tests: Make the imports of assert*() consistent.
[online-glom:gwt-glom.git] / src / test / java / org / glom / web / server / SelfHostExampleTest.java
1 /*
2  * Copyright (C) 2012 Openismus GmbH
3  *
4  * This file is part of GWT-Glom.
5  *
6  * GWT-Glom is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * GWT-Glom is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
14  * for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with GWT-Glom.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 package org.glom.web.server;
21
22 import static org.junit.Assert.*;
23
24 import java.net.URL;
25 import java.sql.Connection;
26 import java.sql.ResultSet;
27 import java.sql.ResultSetMetaData;
28 import java.sql.SQLException;
29 import java.sql.Statement;
30 import java.util.ArrayList;
31 import java.util.List;
32
33 import org.glom.web.server.libglom.Document;
34 import org.glom.web.server.libglom.Document.HostingMode;
35 import org.glom.web.shared.TypedDataItem;
36 import org.glom.web.shared.libglom.Field;
37 import org.glom.web.shared.libglom.layout.LayoutItemField;
38 import org.jooq.Condition;
39 import org.junit.AfterClass;
40 import org.junit.Assert;
41 import org.junit.Test;
42
43 /**
44  * @author Murray Cumming <murrayc@openismus.com>
45  * 
46  */
47 public class SelfHostExampleTest {
48
49         private static SelfHoster selfHoster = null;
50
51         @Test
52         public void test() throws SQLException {
53                 final URL url = SelfHostExampleTest.class.getResource("example_music_collection.glom");
54                 assertTrue(url != null);
55                 final String strUri = url.toString();
56
57                 final Document document = new Document();
58                 document.setFileURI(strUri);
59                 assertTrue(document.load());
60
61                 selfHoster = new SelfHoster(document);
62                 final boolean hosted = selfHoster.createAndSelfHostFromExample(HostingMode.HOSTING_MODE_POSTGRES_SELF);
63                 assertTrue(hosted);
64                 
65                 testExampleMusiccollectionData(document);
66         }
67         
68         private void testExampleMusiccollectionData(final Document document) throws SQLException
69         {
70           assertTrue(document != null);
71           
72           //Check that some data is as expected:
73           final TypedDataItem quickFindValue = new TypedDataItem();
74           quickFindValue.setText("Born To Run");
75           final Condition whereClause = SqlUtils.getFindWhereClauseQuick(document, "albums", quickFindValue);
76           assertTrue(whereClause != null);
77
78           final List<LayoutItemField> fieldsToGet = new ArrayList<LayoutItemField>();
79           Field field = document.getField("albums", "album_id");
80           LayoutItemField layoutItemField = new LayoutItemField();
81           layoutItemField.setFullFieldDetails(field);
82           fieldsToGet.add(layoutItemField);
83           field = document.getField("albums", "name");
84           layoutItemField = new LayoutItemField();
85           layoutItemField.setFullFieldDetails(field);
86           fieldsToGet.add(layoutItemField);
87           
88           final String sqlQuery = SqlUtils.buildSqlSelectWithWhereClause("albums", fieldsToGet, whereClause, null);
89           
90           final Connection conn = selfHoster.createConnection(false);
91           assertTrue(conn != null);
92           
93           final Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
94       //st.setFetchSize(length);
95           final ResultSet rs = st.executeQuery(sqlQuery);
96           assertTrue(rs != null);
97           
98           final ResultSetMetaData rsMetaData = rs.getMetaData();
99           Assert.assertEquals(2, rsMetaData.getColumnCount());
100           
101           rs.last();
102           final int rsRowsCount = rs.getRow();
103           Assert.assertEquals(1, rsRowsCount);
104         }
105
106         @AfterClass
107         public static void tearDown() {
108                 if (selfHoster != null) {
109                         selfHoster.cleanup();
110                 }
111         }
112 }