1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.Core
.Tests
19 using NUnit
.Framework
;
22 public class ReflectionBasedDictionaryAdapterTestCase
24 [Test
, ExpectedException(typeof(ArgumentNullException
))]
25 public void CannotCreateWithNullArgument()
27 new ReflectionBasedDictionaryAdapter(null);
31 public void CanAccessExistingPropertiesInACaseInsensitiveFashion()
33 ReflectionBasedDictionaryAdapter dict
= new ReflectionBasedDictionaryAdapter(new Customer(1, "name"));
35 Assert
.IsTrue(dict
.Contains("id"));
36 Assert
.IsTrue(dict
.Contains("ID"));
37 Assert
.IsTrue(dict
.Contains("Id"));
38 Assert
.IsTrue(dict
.Contains("name"));
39 Assert
.IsTrue(dict
.Contains("Name"));
40 Assert
.IsTrue(dict
.Contains("NAME"));
44 public void ShouldNotAccessInexistingProperties()
46 ReflectionBasedDictionaryAdapter dict
= new ReflectionBasedDictionaryAdapter(new Customer(1, "name"));
48 Assert
.IsFalse(dict
.Contains("Age"));
49 Assert
.IsFalse(dict
.Contains("Address"));
53 public void CanAccessPropertiesValues()
55 ReflectionBasedDictionaryAdapter dict
= new ReflectionBasedDictionaryAdapter(new Customer(1, "name"));
57 Assert
.AreEqual(1, dict
["id"]);
58 Assert
.AreEqual("name", dict
["name"]);
62 public void InexistingPropertiesReturnsNull()
64 ReflectionBasedDictionaryAdapter dict
= new ReflectionBasedDictionaryAdapter(new Customer(1, "name"));
66 Assert
.IsNull(dict
["age"]);
74 public Customer(int id
, string name
)