Added RedirectUsingNamedRoute
[castle.git] / Core / Castle.Core.Tests / ReflectionBasedDictionaryAdapterTestCase.cs
blob062c8eca76beb16910d9cd1f797310e74848f50f
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
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
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
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
17 using System;
18 using Castle.Core;
19 using NUnit.Framework;
21 [TestFixture]
22 public class ReflectionBasedDictionaryAdapterTestCase
24 [Test, ExpectedException(typeof(ArgumentNullException))]
25 public void CannotCreateWithNullArgument()
27 new ReflectionBasedDictionaryAdapter(null);
30 [Test]
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"));
43 [Test]
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"));
52 [Test]
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"]);
61 [Test]
62 public void InexistingPropertiesReturnsNull()
64 ReflectionBasedDictionaryAdapter dict = new ReflectionBasedDictionaryAdapter(new Customer(1, "name"));
66 Assert.IsNull(dict["age"]);
69 public class Customer
71 private int id;
72 private string name;
74 public Customer(int id, string name)
76 this.id = id;
77 this.name = name;
80 public int Id
82 get { return id; }
83 set { id = value; }
86 public string Name
88 get { return name; }
89 set { name = value; }