2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.remoting
;
11 import java
.io
.FileNotFoundException
;
12 import java
.util
.List
;
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
;
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
;
32 * Class to test the {@link CdmApplicationRemoteController}
35 public class CdmApplicationRemoteControllerTest
extends UnitilsJUnit4
{
36 private static final Logger logger
= Logger
.getLogger(CdmApplicationRemoteControllerTest
.class);
40 public static void initialize() {
41 Logger
.getRootLogger().setLevel(Level
.INFO
);
46 public void whenInitializingControllerWithDefaultContextThenSucceed() {
47 CdmRemoteSource remoteSource
= CdmRemoteSource
.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode
.ICNAFP
);
48 CdmApplicationRemoteController controller
=
49 CdmApplicationRemoteController
.NewInstance(remoteSource
,
54 CdmApplicationRemoteController
.NewInstance(CdmApplicationRemoteController
.DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE
,
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");
67 CdmApplicationRemoteController controller
=
68 CdmApplicationRemoteController
.NewInstance(wrongResource
,
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());
87 public void whenConnectingToAnActiveServerThenSucceed() {
88 CdmRemoteSource remoteSource
= CdmRemoteSource
.NewInstance("local", "127.0.0.1", 8080, "", NomenclaturalCode
.ICNAFP
);
89 CdmApplicationRemoteController controller
=
90 CdmApplicationRemoteController
.NewInstance(remoteSource
,
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);
102 public void whenConnectingToInactiveServerThenFail() {
103 CdmRemoteSource remoteSource
= CdmRemoteSource
.NewInstance("local", "127.0.0.1", 8090, "", NomenclaturalCode
.ICNAFP
);
105 CdmApplicationRemoteController controller
=
106 CdmApplicationRemoteController
.NewInstance(remoteSource
,
112 // call any service to check if the connection worked
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
) {