KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > outerj > daisy > repository > test > RemoteVariantTest


1 /*
2  * Copyright 2004 Outerthought bvba and Schaubroeck nv
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.outerj.daisy.repository.test;
17
18 import org.outerj.daisy.repository.RepositoryManager;
19 import org.outerj.daisy.repository.Repository;
20 import org.outerj.daisy.repository.Credentials;
21 import org.outerj.daisy.repository.user.Role;
22 import org.outerj.daisy.repository.variant.VariantManager;
23 import org.outerj.daisy.repository.variant.Branch;
24 import org.outerj.daisy.repository.variant.Language;
25
26 public class RemoteVariantTest extends AbstractVariantTest {
27     protected RepositoryManager getRepositoryManager() throws Exception JavaDoc {
28         return getRemoteRepositoryManager();
29     }
30
31
32     protected void moreTests() throws Exception JavaDoc {
33         checkRemoteCacheInvalidation();
34     }
35  
36     private void checkRemoteCacheInvalidation() throws Exception JavaDoc {
37         RepositoryManager localRepositoryManager = getLocalRepositoryManager();
38         Repository localRepository = localRepositoryManager.getRepository(new Credentials("testuser", "testuser"));
39         localRepository.switchRole(Role.ADMINISTRATOR);
40
41         RepositoryManager remoteRepositoryManager = getRemoteRepositoryManager();
42         Repository remoteRepository = remoteRepositoryManager.getRepository(new Credentials("testuser", "testuser"));
43         remoteRepository.switchRole(Role.ADMINISTRATOR);
44
45         VariantManager localVariantManager = localRepository.getVariantManager();
46         VariantManager remoteVariantManager = remoteRepository.getVariantManager();
47
48         {
49             Branch localBranch = localVariantManager.createBranch("branch99");
50             localBranch.save();
51
52             Branch remoteBranch = remoteVariantManager.getBranch(localBranch.getId(), false);
53
54             localBranch.setName("branch100");
55             localBranch.save();
56
57             // give some time to receive JMS event
58
Thread.sleep(5000);
59
60             remoteBranch = remoteVariantManager.getBranch(localBranch.getId(), false);
61             assertEquals("branch100", remoteBranch.getName());
62         }
63
64         {
65             Language localLanguage = localVariantManager.createLanguage("language99");
66             localLanguage.save();
67
68             // make sure the variant cache is loaded
69
Language remoteLanguage = remoteVariantManager.getLanguage(localLanguage.getId(), false);
70
71             //update the object locally
72
localLanguage.setName("language100");
73             localLanguage.save();
74
75             // give some time to receive JMS event
76
Thread.sleep(5000);
77
78             // check that the remote cache has been updated
79
remoteLanguage = remoteVariantManager.getLanguage(localLanguage.getId(), false);
80             assertEquals("language100", remoteLanguage.getName());
81         }
82     }
83 }
84
Popular Tags