Project

General

Profile

1
/**
2
 *  '$RCSfile$'
3
 *  Copyright: 2010 Regents of the University of California and the
4
 *              National Center for Ecological Analysis and Synthesis
5
 *  Purpose: To test the Access Controls in metacat by JUnit
6
 *
7
 *   '$Author:$'
8
 *     '$Date:$'
9
 * '$Revision:$'
10
 *
11
 * This program is free software; you can redistribute it and/or modify
12
 * it under the terms of the GNU General Public License as published by
13
 * the Free Software Foundation; either version 2 of the License, or
14
 * (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
24
 */
25

    
26
package edu.ucsb.nceas.metacat.dataone;
27

    
28

    
29

    
30
import edu.ucsb.nceas.MCTestCase;
31
import edu.ucsb.nceas.metacat.dataone.CNodeService;
32
import edu.ucsb.nceas.metacat.dataone.D1NodeVersionChecker;
33
import edu.ucsb.nceas.metacat.dataone.MNodeService;
34
import edu.ucsb.nceas.metacat.properties.SkinPropertyService;
35
import edu.ucsb.nceas.metacat.service.ServiceService;
36
import edu.ucsb.nceas.utilities.IOUtil;
37
import gov.loc.repository.bagit.Bag;
38
import gov.loc.repository.bagit.BagFactory;
39
import gov.loc.repository.bagit.BagFile;
40
import gov.loc.repository.bagit.Manifest;
41

    
42
import java.io.ByteArrayInputStream;
43
import java.io.ByteArrayOutputStream;
44
import java.io.File;
45
import java.io.FileOutputStream;
46
import java.io.IOException;
47
import java.io.InputStream;
48
import java.io.UnsupportedEncodingException;
49
import java.math.BigInteger;
50
import java.net.URL;
51
import java.text.SimpleDateFormat;
52
import java.util.ArrayList;
53
import java.util.Calendar;
54
import java.util.Date;
55
import java.util.HashMap;
56
import java.util.Iterator;
57
import java.util.List;
58
import java.util.Map;
59
import java.util.Vector;
60

    
61
import junit.framework.Test;
62
import junit.framework.TestSuite;
63

    
64
import org.apache.commons.io.FileUtils;
65
import org.apache.commons.io.IOUtils;
66
import org.dataone.client.v2.CNode;
67
import org.dataone.client.v2.formats.ObjectFormatCache;
68
import org.dataone.client.v2.itk.D1Client;
69
import org.dataone.configuration.Settings;
70
import org.dataone.ore.ResourceMapFactory;
71
import org.dataone.service.util.Constants;
72
import org.dataone.service.util.TypeMarshaller;
73
import org.dataone.service.exceptions.IdentifierNotUnique;
74
import org.dataone.service.exceptions.InsufficientResources;
75
import org.dataone.service.exceptions.InvalidRequest;
76
import org.dataone.service.exceptions.InvalidSystemMetadata;
77
import org.dataone.service.exceptions.InvalidToken;
78
import org.dataone.service.exceptions.NotAuthorized;
79
import org.dataone.service.exceptions.NotFound;
80
import org.dataone.service.exceptions.NotImplemented;
81
import org.dataone.service.exceptions.ServiceFailure;
82
import org.dataone.service.exceptions.SynchronizationFailed;
83
import org.dataone.service.exceptions.UnsupportedType;
84
import org.dataone.service.types.v1.AccessPolicy;
85
import org.dataone.service.types.v1.AccessRule;
86
import org.dataone.service.types.v1.Checksum;
87
import org.dataone.service.types.v1.DescribeResponse;
88
import org.dataone.service.types.v1.Event;
89
import org.dataone.service.types.v1.ObjectFormatIdentifier;
90
import org.dataone.service.types.v1.Identifier;
91
import org.dataone.service.types.v2.Log;
92
import org.dataone.service.types.v2.Node;
93
import org.dataone.service.types.v2.OptionList;
94
import org.dataone.service.types.v1.NodeReference;
95
import org.dataone.service.types.v1.ObjectFormatIdentifier;
96
import org.dataone.service.types.v1.ObjectList;
97
import org.dataone.service.types.v1.Permission;
98
import org.dataone.service.types.v1.Person;
99
import org.dataone.service.types.v1.Session;
100
import org.dataone.service.types.v1.Subject;
101
import org.dataone.service.types.v1.SubjectInfo;
102
import org.dataone.service.types.v1.util.ChecksumUtil;
103
import org.dataone.service.types.v2.SystemMetadata;
104
import org.dspace.foresite.ResourceMap;
105
import org.junit.After;
106
import org.junit.Before;
107

    
108

    
109
/**
110
 * A JUnit test to exercise the Metacat Member Node service implementation.
111
 * This also tests a few of the D1NodeService superclass methods
112
 * 
113
 * @author cjones
114
 *
115
 */
116
public class D1NodeVersionCheckerTest extends MCTestCase {
117

    
118
    private static String unmatchingEncodingFilePath = "test/incorrect-encoding-declaration.xml";
119
  /**
120
   * Set up the test fixtures
121
   * 
122
   * @throws Exception
123
   */
124
  @Before
125
  public void setUp() throws Exception {
126
    super.setUp();
127
    // set up the configuration for d1client
128
    
129
  }
130

    
131
  /**
132
   * Remove the test fixtures
133
   */
134
  @After
135
  public void tearDown() {
136
  }
137
  
138
  /**
139
   * Build the test suite
140
   * @return
141
   */
142
  public static Test suite() {
143
    
144
    TestSuite suite = new TestSuite();
145
    suite.addTest(new D1NodeVersionCheckerTest("initialize"));
146
    // MNStorage tests
147
    suite.addTest(new D1NodeVersionCheckerTest("testGetVersion"));
148
    return suite;
149
    
150
  }
151
  
152
  /**
153
   * Constructor for the tests
154
   * 
155
   * @param name - the name of the test
156
   */
157
  public D1NodeVersionCheckerTest(String name) {
158
    super(name);
159
    
160
  }
161

    
162
  /**
163
   * Initial blank test
164
   */
165
  public void initialize() {
166
    assertTrue(1 == 1);
167
    
168
  }
169
  
170
  /**
171
   * Test getting versions from different cns
172
   */
173
  public void testGetVersion() throws Exception {
174
      Settings.getConfiguration().setProperty("D1Client.CN_URL", "https://cn-dev.test.dataone.org/cn");
175
      NodeReference node = new NodeReference();
176
      node.setValue("urn:node:mnDemo6");
177
      D1NodeVersionChecker checker = new D1NodeVersionChecker(node);
178
      assertTrue(checker.getVersion("MNReplication").equals("v2"));
179
      node.setValue("urn:node:cnDevUCSB1");
180
      checker = new D1NodeVersionChecker(node);
181
      assertTrue(checker.getVersion("MNReplication") == null);
182
      assertTrue(checker.getVersion("CNRegister").equals("v2"));
183
      
184
      
185
      Settings.getConfiguration().setProperty("D1Client.CN_URL", "https://cn.dataone.org/cn");
186
      node.setValue("urn:node:KNB");
187
      checker = new D1NodeVersionChecker(node);
188
      assertTrue(checker.getVersion("MNReplication").equals("v2"));
189
      node.setValue("urn:node:CN");
190
      checker = new D1NodeVersionChecker(node);
191
      assertTrue(checker.getVersion("MNReplication") == null);
192
      assertTrue(checker.getVersion("CNRegister").equals("v2"));
193
  }
194

    
195
  
196
    
197
}
(3-3/9)