tests: Add a ConfiguredDocument test.
[online-glom:gwt-glom.git] / src / test / java / org / glom / web / server / ConfiguredDocumentTest.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.beans.PropertyVetoException;
25 import java.net.URL;
26 import java.util.ArrayList;
27 import java.util.List;
28
29 import junit.framework.Assert;
30
31 import org.apache.commons.lang3.StringUtils;
32 import org.glom.web.server.libglom.Document;
33 import org.glom.web.server.libglom.DocumentTest;
34 import org.glom.web.shared.DataItem;
35 import org.glom.web.shared.DocumentInfo;
36 import org.glom.web.shared.Reports;
37 import org.glom.web.shared.TypedDataItem;
38 import org.glom.web.shared.libglom.layout.LayoutGroup;
39 import org.junit.AfterClass;
40 import org.junit.BeforeClass;
41 import org.junit.Test;
42
43 /**
44  * @author Ben Konrath <ben@bagu.org>
45  *
46  */
47 public class ConfiguredDocumentTest {
48
49         private static ConfiguredDocument configuredDoc;
50         private static Document document;
51         
52         @BeforeClass
53         static public void setUp() throws PropertyVetoException {
54                 URL url = DocumentTest.class.getResource("example_music_collection.glom");
55                 assertTrue(url != null);
56                 final String testUriMusicCollection = url.toString();
57                 assertTrue(!StringUtils.isEmpty(testUriMusicCollection));
58
59                 document = new Document();
60                 document.setFileURI(testUriMusicCollection);
61                 final boolean retval = document.load();
62                 assertTrue(retval);
63                 
64                 configuredDoc = new ConfiguredDocument(document);
65         }
66
67         @AfterClass
68         static public void tearDown() {
69         }
70
71         /**
72          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDocument()}.
73          */
74         @Test
75         public void testGetDocument() {
76                 Assert.assertNotNull(configuredDoc.getDocument());
77         }
78
79         /**
80          * Test method for {@link org.glom.web.server.ConfiguredDocument#isAuthenticated()}.
81          */
82         @Test
83         public void testIsAuthenticated() {
84                 Assert.assertFalse(configuredDoc.isAuthenticated());
85         }
86
87         /**
88          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDocumentID()}.
89          */
90         @Test
91         public void testGetDocumentID() {
92                 //This is a simple setter/getter:
93                 final String docID = "somethingOrOther";
94                 configuredDoc.setDocumentID(docID);
95                 Assert.assertEquals(docID, configuredDoc.getDocumentID());
96         }
97
98         /**
99          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDefaultLocaleID()}.
100          */
101         @Test
102         public void testGetDefaultLocaleID() {
103                 Assert.assertEquals("", configuredDoc.getDefaultLocaleID());
104         }
105
106         /**
107          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDocumentInfo(java.lang.String)}.
108          */
109         @Test
110         public void testGetDocumentInfo() {
111                 final DocumentInfo docInfo = configuredDoc.getDocumentInfo("");
112                 Assert.assertNotNull(docInfo);
113         }
114
115         /**
116          * Test method for {@link org.glom.web.server.ConfiguredDocument#getListViewData(java.lang.String, java.lang.String, int, int, boolean, int, boolean)}.
117          */
118         @Test
119         public void testGetListViewData() {
120                 final ArrayList<DataItem[]> list = configuredDoc.getListViewData("albums", "", 0, 10, false, 0, false);
121                 Assert.assertNotNull(list);
122                 Assert.assertEquals(10, list.size());
123                 Assert.assertNotNull(list.get(0));
124                 //TODO: test more details.
125         }
126
127         /**
128          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDetailsData(java.lang.String, org.glom.web.shared.TypedDataItem)}.
129          */
130         @Test
131         public void testGetDetailsData() {
132                 final TypedDataItem primaryKeyValue = new TypedDataItem();
133                 primaryKeyValue.setNumber(1);
134                 final DataItem[] data = configuredDoc.getDetailsData("albums", primaryKeyValue);
135                 Assert.assertNotNull(data);
136                 Assert.assertNotNull(data[0]);
137                 //TODO: test more details.
138         }
139
140         /**
141          * Test method for {@link org.glom.web.server.ConfiguredDocument#getRelatedListData(java.lang.String, org.glom.web.shared.libglom.layout.LayoutItemPortal, org.glom.web.shared.TypedDataItem, int, int, int, boolean)}.
142          */
143         @Test
144         public void testGetRelatedListData() {
145                 //TODO: final ArrayList<DataItem[]> list = configuredDoc.getRelatedListData(tableName, portal, foreignKeyValue, start, length, sortColumnIndex, isAscending)
146         }
147
148         /**
149          * Test method for {@link org.glom.web.server.ConfiguredDocument#getDetailsLayoutGroup(java.lang.String, java.lang.String)}.
150          */
151         @Test
152         public void testGetDetailsLayoutGroup() {;
153                 final List<LayoutGroup> list = configuredDoc.getDetailsLayoutGroup("albums", "");
154                 Assert.assertNotNull(list);
155                 Assert.assertNotNull(list.get(0));
156                 //TODO: test more details.
157         }
158
159         /**
160          * Test method for {@link org.glom.web.server.ConfiguredDocument#getRelatedListRowCount(java.lang.String, org.glom.web.shared.libglom.layout.LayoutItemPortal, org.glom.web.shared.TypedDataItem)}.
161          */
162         @Test
163         public void testGetRelatedListRowCount() {
164                 /* TODO:
165                 final TypedDataItem foreignKeyValue = new TypedDataItem();
166                 primaryKeyValue.setNumber(1);
167                 configuredDoc.getRelatedListRowCount(tableName, portal, foreignKeyValue);
168                 */
169         }
170
171         /**
172          * Test method for {@link org.glom.web.server.ConfiguredDocument#getSuitableRecordToViewDetails(java.lang.String, org.glom.web.shared.libglom.layout.LayoutItemPortal, org.glom.web.shared.TypedDataItem)}.
173          */
174         @Test
175         public void testGetSuitableRecordToViewDetails() {
176                 //TODO: final NavigationRecord navRecord = configuredDoc.getSuitableRecordToViewDetails(tableName, portal, primaryKeyValue);
177         }
178
179         /**
180          * Test method for {@link org.glom.web.server.ConfiguredDocument#getListViewLayoutGroup(java.lang.String, java.lang.String)}.
181          */
182         @Test
183         public void testGetListViewLayoutGroup() {
184                 final LayoutGroup group = configuredDoc.getListViewLayoutGroup("albums", "");
185                 Assert.assertNotNull(group);
186                 Assert.assertNotNull(group.getItems());
187                 Assert.assertEquals(10, group.getItems().size());
188                 //TODO: test more details.
189         }
190
191         /**
192          * Test method for {@link org.glom.web.server.ConfiguredDocument#getReports(java.lang.String, java.lang.String)}.
193          */
194         @Test
195         public void testGetReports() {
196                 final Reports reports = configuredDoc.getReports("albums", "");
197                 Assert.assertNotNull(reports);
198                 //TODO: test more details.
199         }
200
201 }