[Mono-dev] [PATCH] WindowsBase: System.ComponentModel

zer0keefie at gmail.com zer0keefie at gmail.com
Sat Nov 15 11:31:20 EST 2008


I don't have commit access; feel free to check it in when you have a chance.

~Brian

On Nov 14, 2008 6:35pm, Chris Toshok <toshok at gmail.com> wrote:
> awesome - you have commit access? If so, go for it. Otherwise I can get  
this in tonight.
>
> chris
>
> On Thu, Nov 13, 2008 at 10:05 PM, Brian O'Keefe zer0keefie at gmail.com>  
wrote:
>
> 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:
> 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.
> 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:
> 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:
> 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/20081115/4733091f/attachment.html 


More information about the Mono-devel-list mailing list