Re: [Nunit-users] What do you think about Constraint modifiers?

"Charlie Poole" <[email protected]> Tue, 12 Aug 2008 17:30:54 -0700
Newsgroups gmane.comp.windows.dotnet.nunit.devel
Message-ID <000001c8fcdb$e43d9e60$6401a8c0@ferrari>
Hi All,

Feedback was light on the list, but several of you engaged me
directly. My conclusions are...

1) The mechanism is a good one, but may need some better
explanation. Logically, these are "Modifiers" even though
they are implemented as getters and methods returning a
value. The fact is that this is already a well-established
pattern in other fluent interfaces.

2) Not all the existing modifiers are necessarily useful. I
have my doubts about AsCollection and will look at using
the types passed in to determine how the comparison is
actually made. 

3) In the latest code, I have an approach in place to make
sure that modifiers are only allowed where they are expected.
So "Is.Null.IgnoreCase" or "Is.Null.Within(.0005)" are 
not allowed at all. This will take a bit more cleanup, but
it's basically solved.

4) I've implemented And and Or operators, which work as you
might expect and look cleaner (to me) than & and |.

Charlie

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf 
> Of Charlie Poole
> Sent: Friday, August 08, 2008 6:32 PM
> To: [email protected]; 
> [email protected]
> Subject: [Nunit-users] What do you think about Constraint modifiers?
> 
> In case you didn't know, those are the things that come after 
> the main constraint and modify how it acts. Currently we have:
>   .Within(...)
>   .IgnoreCase
>   .RespectCase
>   .AsCollection
>   .NoClip
>   .Comparer(...)
> 
> These are devilishly hard to get right in the syntax. For 
> example, you can type Is.Null.IgnoreCase in the current code, 
> which makes no sense. Before putting more time into this, I 
> wanted to ask whether you use these and whether the current 
> format works well.
> 
> I know some people are bothered by a form that looks like a 
> getter property modifying the state of the object, but you 
> could also say it's just a new paradigm and get used to it. 
> Obviously, if we abandoned the modifier syntax, we would need 
> to find other ways to do the same stuf.
> 
> Your thoughts?
> 
> Charlie
> 
> 
> 
> 
> --------------------------------------------------------------
> -----------
> This SF.Net email is sponsored by the Moblin Your Move 
> Developer's challenge Build the coolest Linux based 
> applications with Moblin SDK & win great prizes Grand prize 
> is a trip for two to an Open Source event anywhere in the 
> world http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Nunit-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/nunit-users
> 



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/