New tests.
[mono.git] / mcs / class / System.Runtime.Caching / Test / Common / PokerMemoryCache.cs
1 //
2 // PokerMemoryCache.cs
3 //
4 // Authors:
5 //      Marek Habersack <mhabersack@novell.com>
6 //
7 // Copyright (C) 2010 Novell, Inc. (http://novell.com/)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 using System;
29 using System.Collections.Generic;
30 using System.Collections.Specialized;
31 using System.Runtime.Caching;
32 using System.Text;
33
34 namespace MonoTests.Common
35 {
36         class PokerMemoryCache : MemoryCache
37         {
38                 List<string> calls;
39
40                 public List<string> Calls
41                 {
42                         get
43                         {
44                                 if (calls == null)
45                                         calls = new List<string> ();
46                                 return calls;
47                         }
48                 }
49
50                 public override object this [string key]
51                 {
52                         get
53                         {
54                                 Calls.Add ("get_this [string key]");
55                                 return base [key];
56                         }
57                         set
58                         {
59                                 Calls.Add ("set_this [string key]");
60                                 base [key] = value;
61                         }
62                 }
63
64                 public PokerMemoryCache (string name, NameValueCollection config = null)
65                         : base (name, config)
66                 { }
67
68                 public override CacheItem AddOrGetExisting (CacheItem item, CacheItemPolicy policy)
69                 {
70                         Calls.Add ("AddOrGetExisting (CacheItem item, CacheItemPolicy policy)");
71                         return base.AddOrGetExisting (item, policy);
72                 }
73
74                 public override object AddOrGetExisting (string key, object value, CacheItemPolicy policy, string regionName = null)
75                 {
76                         Calls.Add ("AddOrGetExisting (string key, object value, CacheItemPolicy policy, string regionName = null)");
77                         return base.AddOrGetExisting (key, value, policy, regionName);
78                 }
79
80                 public override object AddOrGetExisting (string key, object value, DateTimeOffset absoluteExpiration, string regionName = null)
81                 {
82                         Calls.Add ("AddOrGetExisting (string key, object value, DateTimeOffset absoluteExpiration, string regionName = null)");
83                         return base.AddOrGetExisting (key, value, absoluteExpiration, regionName);
84                 }
85
86                 public override object Get (string key, string regionName = null)
87                 {
88                         Calls.Add ("Get (string key, string regionName = null)");
89                         return base.Get (key, regionName);
90                 }
91
92                 public override CacheItem GetCacheItem (string key, string regionName = null)
93                 {
94                         Calls.Add ("GetCacheItem (string key, string regionName = null)");
95                         return base.GetCacheItem (key, regionName);
96                 }
97
98                 public override long GetCount (string regionName = null)
99                 {
100                         Calls.Add ("GetCount (string regionName = null)");
101                         return base.GetCount (regionName);
102                 }
103
104                 public override bool Contains (string key, string regionName = null)
105                 {
106                         Calls.Add ("Contains (string key, string regionName = null)");
107                         return base.Contains (key, regionName);
108                 }
109
110                 public override CacheEntryChangeMonitor CreateCacheEntryChangeMonitor (IEnumerable<string> keys, string regionName = null)
111                 {
112                         Calls.Add ("CreateCacheEntryChangeMonitor (IEnumerable<string> keys, string regionName = null)");
113                         return base.CreateCacheEntryChangeMonitor (keys, regionName);
114                 }
115
116                 protected override IEnumerator<KeyValuePair<string, object>> GetEnumerator ()
117                 {
118                         Calls.Add ("IEnumerator<KeyValuePair<string, object>> GetEnumerator ()");
119                         return base.GetEnumerator ();
120                 }
121
122                 public IEnumerator<KeyValuePair<string, object>> DoGetEnumerator ()
123                 {
124                         return GetEnumerator ();
125                 }
126
127                 public override IDictionary<string, object> GetValues (IEnumerable<string> keys, string regionName = null)
128                 {
129                         Calls.Add ("IDictionary<string, object> GetValues (IEnumerable<string> keys, string regionName = null)");
130                         return base.GetValues (keys, regionName);
131                 }
132
133                 public override IDictionary<string, object> GetValues (string regionName, params string [] keys)
134                 {
135                         Calls.Add ("IDictionary<string, object> GetValues (string regionName, params string [] keys)");
136                         return base.GetValues (regionName, keys);
137                 }
138
139                 public override void Set (CacheItem item, CacheItemPolicy policy)
140                 {
141                         Calls.Add ("Set (CacheItem item, CacheItemPolicy policy)");
142                         base.Set (item, policy);
143                 }
144
145                 public override void Set (string key, object value, CacheItemPolicy policy, string regionName = null)
146                 {
147                         Calls.Add ("Set (string key, object value, CacheItemPolicy policy, string regionName = null)");
148                         base.Set (key, value, policy, regionName);
149                 }
150
151                 public override void Set (string key, object value, DateTimeOffset absoluteExpiration, string regionName = null)
152                 {
153                         Calls.Add ("Set (string key, object value, DateTimeOffset absoluteExpiration, string regionName = null)");
154                         base.Set (key, value, absoluteExpiration, regionName);
155                 }
156
157         }
158 }