45a58486350028c91ea2e972a48d28c4b95e8cfd
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / taxeditor / httpinvoker / HttpInvokerServicesTest.java
1 /**
2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.httpinvoker;
10
11 import org.apache.log4j.Logger;
12 import org.junit.Assert;
13 import org.junit.Ignore;
14 import org.junit.Test;
15 import org.springframework.remoting.RemoteAccessException;
16 import org.springframework.security.core.context.SecurityContext;
17 import org.springframework.security.core.context.SecurityContextHolder;
18
19 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
20 import eu.etaxonomy.cdm.api.service.ITestService;
21 import eu.etaxonomy.cdm.config.CdmSourceException;
22 import eu.etaxonomy.cdm.model.description.PolytomousKey;
23
24 /**
25 * Class to test the HttpInvoker services exposed by the CDM Sever
26 */
27 public class HttpInvokerServicesTest extends BaseRemotingTest {
28 private static final Logger logger = Logger.getLogger(HttpInvokerServicesTest.class);
29
30 ITestService testService = getRemoteApplicationController().getTestService();
31
32 @Test
33 public void whenCallingMethodsOnRemoteServicesThenSucceed() {
34 try {
35
36 //getRemoteApplicationController().getDatabaseService();
37 String dbSchemaVersion = getRemoteApplicationController().getDatabaseService().getDbSchemaVersion();
38 logger.info("dbSchemaVersion is " + dbSchemaVersion);
39 } catch (CdmSourceException e) {
40 Assert.fail("pinging database service on active cdm server should not have thrown CdmSourceException");
41 }
42
43 getRemoteApplicationController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);
44 }
45
46 @Ignore
47 @Test
48 public void whenCallingMethodsOnRemoteServicesThenFailIfNotAuthenticated() {
49
50 SecurityContext context = SecurityContextHolder.getContext();
51
52 CdmApplicationState.setCurrentSecurityContext(null);
53 try {
54 getRemoteApplicationController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);
55 Assert.fail("service call should fail as it is not authenticated");
56 }catch (RemoteAccessException rae) {
57
58 }
59
60 CdmApplicationState.setCurrentSecurityContext(context);
61 }
62
63 // should be kept at ignore and only used for manual testing
64 // otherwise tests will take too much time
65 @Ignore
66 @Test
67 public void testDisableReadTimeout() throws InterruptedException {
68 testService.waitFor((long) 120000.0);
69 }
70 }