1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 package edu.internet2.middleware.grouper.privs;
34 import junit.textui.TestRunner;
35 import edu.internet2.middleware.grouper.GrouperNamingAdapter;
36 import edu.internet2.middleware.grouper.GrouperSession;
37 import edu.internet2.middleware.grouper.Stem;
38 import edu.internet2.middleware.grouper.StemFinder;
39 import edu.internet2.middleware.grouper.SubjectFinder;
40 import edu.internet2.middleware.grouper.cache.EhcacheController;
41 import edu.internet2.middleware.grouper.cfg.GrouperConfig;
42 import edu.internet2.middleware.grouper.exception.GrouperException;
43 import edu.internet2.middleware.grouper.helper.GrouperTest;
44 import edu.internet2.middleware.grouper.internal.util.Realize;
45
46
47
48
49
50
51
52
53 public class Test_privs_CachingNamingResolver extends GrouperTest {
54
55
56
57
58 public Test_privs_CachingNamingResolver() {
59
60 }
61
62
63
64
65
66 public Test_privs_CachingNamingResolver(String name) {
67 super(name);
68 }
69
70
71
72
73 public static void main(String[] args) {
74 TestRunner.run(new Test_privs_CachingNamingResolver("test_hasPrivilege_cacheMiss"));
75 }
76
77 private CachingNamingResolver resolver;
78 private Stem ns;
79
80
81
82 public void setUp() {
83 super.setUp();
84 try {
85 this.ns = StemFinder.findRootStem(
86 GrouperSession.start( SubjectFinder.findRootSubject() )
87 );
88 this.resolver = new CachingNamingResolver(
89 new NamingWrapper(
90 GrouperSession.start( SubjectFinder.findRootSubject() ),
91 (NamingAdapter) Realize.instantiate(
92 GrouperNamingAdapter.class.getName()
93 )
94 )
95 );
96 }
97 catch (Exception e) {
98 throw new GrouperException( "error in setUp(): " + e.getMessage(), e );
99 }
100 }
101
102 public void tearDown() {
103 super.tearDown();
104 }
105
106
107
108 public void test_constructor_nullDecoratedResolver() {
109 try {
110 new CachingNamingResolver(null);
111 fail("failed to throw IllegalArgumentException");
112 }
113 catch (IllegalArgumentException eExpected) {
114 assertTrue("threw expected exception", true);
115 }
116 }
117
118
119
120
121
122
123 public void test_hasPrivilege_cacheMiss() {
124
125 EhcacheController.ehcacheController().getCache(CachingNamingResolver.CACHE_HASPRIV).setStatisticsEnabled(true);
126
127 long before = resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getMisses();
128 resolver.hasPrivilege( this.ns, SubjectFinder.findAllSubject(), NamingPrivilege.STEM );
129 assertEquals( before + 1, resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getMisses() );
130 }
131
132
133
134
135 public void test_hasPrivilege_cacheHit() {
136 EhcacheController.ehcacheController().getCache(CachingNamingResolver.CACHE_HASPRIV).setStatisticsEnabled(true);
137
138 long before = resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getHits();
139 resolver.hasPrivilege( this.ns, SubjectFinder.findAllSubject(), NamingPrivilege.STEM );
140 assertEquals( before, resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getHits() );
141 resolver.hasPrivilege( this.ns, SubjectFinder.findAllSubject(), NamingPrivilege.STEM );
142 assertEquals( before + 1, resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getHits() );
143 }
144
145
146
147 public void test_hasPrivilege_cacheSize() {
148 long size = resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getSize();
149 resolver.hasPrivilege( this.ns, SubjectFinder.findAllSubject(), NamingPrivilege.STEM );
150 assertEquals(size+ 1, resolver.getStats(CachingNamingResolver.CACHE_HASPRIV).getSize() );
151 }
152
153 }
154