Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.impl / src / test / java / org / gvsig / fmap / dal / resource / spi / AbstractResourceTest.java @ 40559

History | View | Annotate | Download (4.59 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/* gvSIG. Geographic Information System of the Valencian Government
25
*
26
* Copyright (C) 2007-2008 Infrastructures and Transports Department
27
* of the Valencian Government (CIT)
28
* 
29
* This program is free software; you can redistribute it and/or
30
* modify it under the terms of the GNU General Public License
31
* as published by the Free Software Foundation; either version 2
32
* of the License, or (at your option) any later version.
33
* 
34
* This program is distributed in the hope that it will be useful,
35
* but WITHOUT ANY WARRANTY; without even the implied warranty of
36
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37
* GNU General Public License for more details.
38
* 
39
* You should have received a copy of the GNU General Public License
40
* along with this program; if not, write to the Free Software
41
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
42
* MA  02110-1301, USA.
43
* 
44
*/
45

    
46
/*
47
* AUTHORS (In addition to CIT):
48
* 2009 {}  {{Task}}
49
*/
50
package org.gvsig.fmap.dal.resource.spi;
51

    
52
import junit.framework.TestCase;
53

    
54
import org.easymock.MockControl;
55
import org.gvsig.fmap.dal.resource.ResourceAction;
56
import org.gvsig.fmap.dal.resource.ResourceParameters;
57
import org.gvsig.fmap.dal.resource.exception.ResourceNotifyOpenException;
58

    
59
/**
60
 * Unit tests for the class {@link AbstractResource}
61
 * 
62
 * @author 2009- <a href="cordinyana@gvsig.org">C?sar Ordi?ana</a> - gvSIG team
63
 */
64
public class AbstractResourceTest extends TestCase {
65

    
66
        private AbstractResource resource;
67
        private MockControl paramsControl;
68
        private ResourceParameters params;
69

    
70
        protected void setUp() throws Exception {
71
                super.setUp();
72
                paramsControl = MockControl.createNiceControl(ResourceParameters.class);
73
                params = (ResourceParameters) paramsControl.getMock();
74
                resource = new TestResource(params);
75
        }
76

    
77
        /**
78
         * Test method for {@link org.gvsig.fmap.dal.resource.spi.AbstractResource#getLastTimeOpen()}.
79
         */
80
        public void testGetLastTimeOpen() throws ResourceNotifyOpenException {
81
                long time = resource.getLastTimeOpen();
82
                resource.notifyOpen();
83
                assertTrue("The resource last time open hasn't been updated",
84
                                resource.getLastTimeOpen() > time);
85
        }
86

    
87
        /**
88
         * Test method for {@link org.gvsig.fmap.dal.resource.spi.AbstractResource#getLastTimeUsed()}.
89
         */
90
        public void testGetLastTimeUsed() throws Exception {
91
                long time = resource.getLastTimeUsed();
92
                resource.execute(new ResourceAction() {
93
                        public Object run() throws Exception {
94
                                try {
95
                                        // Wait for 100 milliseconds
96
                                        Thread.sleep(100);
97
                                } catch (InterruptedException e) {
98
                                        // No problem
99
                                }
100
                                return null;
101
                        }
102
                });
103
                assertTrue("The resource last time used hasn't been updated",
104
                                resource.getLastTimeUsed() > time);
105
        }
106

    
107
        /**
108
         * Test method for {@link org.gvsig.fmap.dal.resource.spi.AbstractResource#openCount()}.
109
         */
110
        public void testOpenCount() throws Exception {
111
                assertEquals(0, resource.openCount());
112
                resource.notifyOpen();
113
                assertEquals(1, resource.openCount());
114
                resource.notifyOpen();
115
                resource.notifyOpen();
116
                assertEquals(3, resource.openCount());
117
                resource.notifyClose();
118
                assertEquals(2, resource.openCount());
119
        }
120

    
121
        /**
122
         * Test method for
123
         * {@link org.gvsig.fmap.dal.resource.spi.AbstractResource#execute(java.lang.Runnable)}
124
         * .
125
         */
126
        public void testExecute() throws Exception {
127
                final MutableBoolean testValue = new MutableBoolean();
128
                resource.execute(new ResourceAction() {
129
                        public Object run() throws Exception {
130
                                testValue.setValue(true);
131
                                return null;
132
                        }
133
                });
134
                assertTrue("Runnable execution not performed", testValue.isValue());
135
        }
136

    
137
        public class MutableBoolean {
138
                private boolean value = false;
139

    
140
                public void setValue(boolean value) {
141
                        this.value = value;
142
                }
143

    
144
                public boolean isValue() {
145
                        return value;
146
                }
147
        }
148
}