Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Let's see where we were...
- Retrieve a Bookmark that is not in the collection, return null
The test for this looks like this:
[
Test]
public void RetrieveABookmarkNotInCollection()
{
Assert.IsNull(collection[exampleDotComLabel]);
}
When I run this I get the following error:
BookmarkCollectionFixture.RetrieveABookmarkNotInCollection : System.Collections.Generic.KeyNotFoundException : The given key was not present in the dictionary.
Unfortunately it does not return null like I want it to. I guess I will have to write some code. I need to modify the Indexer to check to see if the label is in the collection. If not it should return null. Here's the code:
public Uri this[string label]
{
get
{
if (!dictionary.ContainsKey(label)) return null;
return dictionary[label];
}
}
I compile and run and the tests pass. Let's move on. The next post will address the following tests:
- Add a Bookmark with a null label, expect ArgumentNullException
- Add a Bookmark with a null URL, expect ArgumentNullException
Surveying the rest of the tests in the test list indicates that there is not much left so I should be able to finish up the task in the next couple of posts.
Comments
- Anonymous
December 27, 2004
This an extremely off-topic comment, but I have never understood why the library was written this way. In this code
if (!dictionary.ContainsKey(label))
return null;
return dictionary[label];
The lookup is actually performed twice for objects in the dictionary. What a horrible performance penalty! The STL and MFC approaches seems much more sane in that regard. - Anonymous
December 27, 2004
Interesting read ;), I just came through.
My question is, how many of us would rather write:
if (!dictionary.ContainsKey(label))
return null;
else
return dictionary[label];
--
It makes no real difference, but for me, it feels more 'right'.
I want to return null if dictionary doesn't contain the key, else I want to return the value.
Anybody else? :)
RGab