set svn:ignore on lib dir and removed auto dounloaded webapp war file
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / test / java / eu / etaxonomy / taxeditor / remoting / CdmApplicationRemoteControllerTest.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.remoting;
10
11 import java.io.FileNotFoundException;
12 import java.util.List;
13
14 import org.apache.log4j.Level;
15 import org.apache.log4j.Logger;
16 import org.junit.Assert;
17 import org.junit.BeforeClass;
18 import org.junit.Test;
19 import org.springframework.core.io.ClassPathResource;
20 import org.springframework.core.io.Resource;
21 import org.springframework.remoting.RemoteConnectFailureException;
22 import org.unitils.UnitilsJUnit4;
23
24 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
25 import eu.etaxonomy.cdm.api.service.IClassificationService;
26 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
27 import eu.etaxonomy.cdm.model.taxon.Classification;
28 import eu.etaxonomy.cdm.remote.CdmRemoteSource;
29
30
31 /**
32 * Class to test the {@link CdmApplicationRemoteController}
33 *
34 */
35 public class CdmApplicationRemoteControllerTest extends UnitilsJUnit4 {
36 private static final Logger logger = Logger.getLogger(CdmApplicationRemoteControllerTest.class);
37
38
39 @BeforeClass
40 public static void initialize() {
41 Logger.getRootLogger().setLevel(Level.INFO);
42
43 }
44
45 @Test
46 public void whenInitializingControllerWithDefaultContextThenSucceed() {
47 CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
48 CdmApplicationRemoteController controller =
49 CdmApplicationRemoteController.NewInstance(remoteSource,
50 false,
51 null,
52 null);
53 controller =
54 CdmApplicationRemoteController.NewInstance(CdmApplicationRemoteController.DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE,
55 remoteSource,
56 false,
57 null,
58 null);
59 }
60
61 @Test
62 public void whenInitializingControllerWithInvalidContextThenFail() {
63 CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
64 Resource wrongResource =
65 new ClassPathResource("/eu/etaxonomy/cdm/wrongRemotingApplicationContext.xml");
66 try {
67 CdmApplicationRemoteController controller =
68 CdmApplicationRemoteController.NewInstance(wrongResource,
69 remoteSource,
70 false,
71 null,
72 null);
73 Assert.fail("Remote controller should fail when initialised with an invalid context file");
74 } catch(RuntimeException re) {
75 Throwable t = re.getCause();
76 if(t instanceof FileNotFoundException) {
77 logger.info(t.getClass().getCanonicalName() + " : " + t.getMessage());
78 } else {
79 throw re;
80 }
81 }
82
83 }
84
85
86 @Test
87 public void whenConnectingToAnActiveServerThenSucceed() {
88 CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
89 CdmApplicationRemoteController controller =
90 CdmApplicationRemoteController.NewInstance(remoteSource,
91 false,
92 null,
93 null);
94 // call any service to check if the connection worked
95 IClassificationService classificationService= controller.getClassificationService();
96 List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
97 Assert.assertTrue("We should have at least one classification",classifications.size() > 0);
98
99 }
100
101 @Test
102 public void whenConnectingToInactiveServerThenFail() {
103 CdmRemoteSource remoteSource = CdmRemoteSource.NewInstance("local", "127.0.0.1", 8090, "", NomenclaturalCode.ICNAFP);
104
105 CdmApplicationRemoteController controller =
106 CdmApplicationRemoteController.NewInstance(remoteSource,
107 false,
108 null,
109 null);
110
111
112 // call any service to check if the connection worked
113 try {
114 IClassificationService classificationService= controller.getClassificationService();
115 List<Classification> classifications = classificationService.listClassifications(1,0,null,null);
116 Assert.fail("Calling remote service should fail when connecting to an inactive CDM Server");
117 } catch(RemoteConnectFailureException rcfe) {
118
119 }
120
121 }
122 }