[Mono-dev] [PATCH] WindowsBase: System.ComponentModel
Brian O'Keefe
zer0keefie at gmail.com
Fri Nov 14 01:05:51 EST 2008
Ah, I see what you mean now. Writing unit tests for code you can't see is
definitely a challenge.
I added the check inside the event handler, and it still passes on the MS
framework.
Consequently, I made a new patch.
~Brian
2008/11/14 Chris Toshok <toshok at gmail.com>
> trying to get this back on the list :)
>
> so all the changes look awesome - the one remaining issue is that IsSealed
> test. What I meant was in the test where you register a handler
> (SortDescriptionCollectionAddTest), you should check to see if the
> SortDescription is sealed *inside* that handler. Your implementation is
> sealing it before calling the handler, but there's no test for that.
>
> So, something like this:
>
> + ((INotifyCollectionChanged)sdc).CollectionChanged
> += delegate (object sender, NotifyCollectionChangedEventArgs e) {
> + Assert.AreEqual
> (NotifyCollectionChangedAction.Add, e.Action, "ADD_#0");
> + addedItem = (SortDescription)e.NewItems
> [0];
> ++ Assert.IsTrue (addedItem.IsSealed,
> "ADD_#0.5");
> + };
>
> Chris
>
>
> On Wed, Nov 12, 2008 at 5:36 PM, Brian O'Keefe <zer0keefie at gmail.com>wrote:
>
>> Hello,
>>
>> I updated my patch to fix the problems you mentioned. I'll attach the new
>> one.
>>
>> In SortDescription:
>>>
>>> 1. Null checks for Name, both in the property setter and ctor. If
>>> null is permitted there, add a check for the ==/!= operators using them,
>>> because currently yours will throw NRE.
>>> 2. Property setter tests on a Sealed SortDescription. do they throw
>>> InvalidOperationException?
>>>
>>> I missed this one completely. I fixed the NREs. According to MSDN, null
>> and empty values aren't allowed, but they're both accepted as input. I made
>> my implementation compatible with the Microsoft implementation.
>>
>> There was another exception I had overlooked:
>> InvalidEnumArgumentException. Apparently the MS framework throws these if
>> you try to pass in a direction that's not ascending or descending. Mine
>> does it too now.
>>
>>
>>> In CurrentChangingEventArgs:
>>>
>>> 1. Need a test to see if setting args.Cancel to true throws an
>>> exception when IsCancelable is false.
>>>
>>> Added the test for that, and fixed my code to match the MS
>> implementation.
>>
>>
>>> In SortDescriptionCollection:
>>>
>>> 1. need to verify that the item is actually sealed before the
>>> CollectionChanged handler is called. I didn't see a test that checks that.
>>>
>>> Added a test for that, which I think does the right thing. I don't
>> subscribe to CollectionChanged, and the SortDescription is still sealed.
>>
>>
>>> Please don't reformat code in patches (particularly whitespace/line
>>> wrapping things) that contain actual code changes, unless it's absolutely
>>> necessary. It makes it much harder to see substantive changes.
>>>
>>
>> Sorry about that one; Visual Studio was being difficult. I unchanged the
>> formatting I changed accidentally.
>>
>> ~Brian
>>
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20081114/4943d77a/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ComponentModel.diff
Type: application/octet-stream
Size: 37095 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20081114/4943d77a/attachment-0001.obj
More information about the Mono-devel-list
mailing list