[Phpmyadmin-devel] SQLValidator

Ayush Chaudhary ayushchd at gmail.com
Mon Jul 8 13:46:06 CEST 2013



On Wednesday, 3 July 2013 at 8:41 PM, Madhura Jayaratne wrote:

> 
> 
> 
> On Wed, Jul 3, 2013 at 1:59 PM, Ayush Chaudhary <ayushchd at gmail.com (mailto:ayushchd at gmail.com)> wrote:
> > Hi, 
> > 
> > On Wednesday, 3 July 2013 at 2:08 PM, Dieter Adriaenssens wrote:
> > > 2013/7/3 Ayush Chaudhary <ayushchd at gmail.com (mailto:ayushchd at gmail.com)>:
> > > > Hi,
> > > > 
> > > > Is there a reason why validation.lib.php is not a class with public static 
> > > > method? Is it okay to convert it to a class with all methods' access
> > > > specifier as public static?
> > > > 
> > > 
> > > 
> > > Did you mean the PMA_SQLValidator class in
> > > libraries/sqlvalidator.class.php? I didn't find a validation.lib.php,
> > > or something similar, in the PMA codebase, that contains a class.
> > > (libraries/config/validate.lib.php doesn't contain a class)
> > > 
> > Sorry for not being clear. I was referring to the library libraries/config/validate.lib.php. I am currently writing tests for libraries/config/FormDisplay.class.php, and there are numerous calls to functions from validate.lib.php which cannot be mocked because they are not contained in a class. Also, the same issue holds for libraries/config/FormDisplay.tpl.php 
> 
> I am in favor of putting these functions into a class as static methods. 
Waiting for more confirmations :) 
> > 
> > > Assuming you mean PMA_SQLValidator, this is not a static class, ie. it 
> > > has to be instanciated (= turned into an object), so it can't have
> > > static methods. [1]
> > > To use (or test) this class, you have to create an instance and call
> > > the methods from that instance, fe.
> > > 
> > > $validator = new PMA_SQLValidator();
> > > 
> > > $validator->start();
> > > 
> > > (see libraries/sqlvalidator.lib.php for an example on how to
> > > instanciate and use the PMA_SQLValidator class)
> > > 
> > > BTW : Testing a class instance can sometimes be tricky, especially if
> > > it communicates with, or uses another class. If this is the case, you
> > > will have to use Mock objects [0] and Stubs to simulate the expected
> > > behaviour of the other class.
> > > 
> > I wanted to use mocking and just set expectations with parameters, but that won't be possible unless these libraries are converted to classes  
> 
> Here [1] is a good blog post from the author of PHPUnit about mocking static methods.
> 
> [1] http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html
 (http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html)> 
> -- Thanks and Regards,
> 
> Madhura Jayaratne
> 
> ------------------------------------------------------------------------------
> This SF.net (http://SF.net) email is sponsored by Windows:
> 
> Build for Windows Store.
> 
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> Phpmyadmin-devel mailing list
> Phpmyadmin-devel at lists.sourceforge.net (mailto:Phpmyadmin-devel at lists.sourceforge.net)
> https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
> 
> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20130708/552a4002/attachment.html>


More information about the Developers mailing list