PHP Classes
elePHPant
Icontem

File: Command/utest.php

Recommend this page to a friend!
  Classes of Till Wehowski  >  aSQL CLI  >  Command/utest.php  >  Download  
File: Command/utest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: aSQL CLI
Parse and extract a command line arguments string
Author: By
Last change: auto dev server commit
Date: 4 years ago
Size: 6,160 bytes
 

 

Contents

Class file image Download
<?php
/**
 * Copyright (c) 2015, Till Wehowski
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 1. Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 3. Neither the name of frdl/webfan nor the
 * names of its contributors may be used to endorse or promote products
 * derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY frdl/webfan ''AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL frdl/webfan BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * @role example/test
 *
 * @cmd "frdl test -b -d"
 *
 */
namespace frdl\ApplicationComposer\Command;

class
utest extends CMD
{


   
   
    public function
process()
    {
      
$args = func_get_args();
      
$this->result->out = 'test';
      
$this->result->args = $this->argtoks;
      
           if(!isset(
$this->aSess['isAdmin']) || true !== $this->aSess['isAdmin'] ){
               
$this->result->out = 'set config ERROR: You are not logged in as Admin';
     
              return;
          }
      
      
         if(isset(
$this->argtoks['arguments'][0]) && intval($this->argtoks['arguments'][0]['pos']) === 1){
            
$test = $this->argtoks['arguments'][0]['cmd'];
            
$method = '_test_'.$test;
             if(
is_callable(array($this,$method))){
                return
call_user_func_array(array($this,$method), func_get_args());
            }
         }
        
       
$this->result->out = 'No given testcase or unit! Usage: frdl test [unit]';
       
        return
$this->result;
    }
   
     protected function
_test_tables(){
        
        if(
true!== $this->loadConfigFromFile(true)){
               
$this->result->out = 'config ERROR: cannot readf config file';
             return;
        }
       

       
        try{
           
        
$_s = new \frdl\o;
        
$tables = array();
        
$S = new \frdl\_db();
        
        
$db = new \frdl\DB(array(
          
'driver' => $this->data['config']['db-driver'],
          
'host' => $this->data['config']['db-host'],
          
'dbname' => $this->data['config']['db-dbname'],
          
'user' => $this->data['config']['db-user'],
          
'password' => $this->data['config']['db-pwd'],
          
'pfx' => $this->data['config']['db-pfx'],
          
        ),
true);
        
        
        
        
                  
        
$S->check($_s, $tables, null, true, false, false, $db, array(
          
'driver' => $this->data['config']['db-driver'],
          
'host' => $this->data['config']['db-host'],
          
'dbname' => $this->data['config']['db-dbname'],
          
'user' => $this->data['config']['db-user'],
          
'password' => $this->data['config']['db-pwd'],
          
'pfx' => $this->data['config']['db-pfx'],
          
        ));
       
            
       
$this->result->schema = $_s;
       
$this->result->tables = $tables;
       

             

            
            
        
$this->result->code = 200;
        
$this->result->out = 'Ok';
        
        }catch(\
Exception $e){
           die(
$e->getMessage());
        }



         return
$this->result;
    }
   
    protected function
_test_dbqueries(){
       
            if(
true!== $this->loadConfigFromFile(true)){
               
$this->result->out = 'set config ERROR: cannot readf config file';
             return;
        }
       
ini_set('display_errors', 0);
       
error_reporting(E_ALL);
       
       
$db = \frdl\DB::_(array(
          
'driver' => $this->data['config']['db-driver'],
          
'host' => $this->data['config']['db-host'],
          
'dbname' => $this->data['config']['db-dbname'],
          
'user' => $this->data['config']['db-user'],
          
'password' => $this->data['config']['db-pwd'],
          
'pfx' => $this->data['config']['db-pfx'],
          
        ),
true);
           
           
           
       
$db -> query( "DROP TABLE IF EXISTS testdata");
            
$this->result->error = print_r($db->errorInfo(), true);
            
            
      
$db -> query( "CREATE TABLE IF NOT EXISTS testdata
(ID INTEGER PRIMARY KEY,
CITY CHAR(20),
STATE CHAR(2),
LAT_N REAL,
LONG_W REAL); "
);

      
$db -> query( "INSERT INTO testdata VALUES (13, 'Phoenix', 'AZ', 33, 112);

 "
);


   
$this->result->test = $db -> query( "SELECT * FROM STATION LIMIT 1;
 "
);

  
$this->result->error .= print_r($db->errorInfo(), true);
  
  
$this->result->errorcode = print_r($db->errorCode(), true);
    }
   
   
      
    protected function
_test_database(){
        if(
true!== $this->loadConfigFromFile(true)){
               
$this->result->out = 'set config ERROR: cannot readf config file';
             return;
        }
       
ini_set('display_errors', 0);
       
error_reporting(E_ALL);

        try{
       
       
       
$db = \frdl\DB::_(array(
          
'driver' => $this->data['config']['db-driver'],
          
'host' => $this->data['config']['db-host'],
          
'dbname' => $this->data['config']['db-dbname'],
          
'user' => $this->data['config']['db-user'],
          
'password' => $this->data['config']['db-pwd'],
          
'pfx' => $this->data['config']['db-pfx'],
          
        ),
true);
        }catch(\
Exception $e){
           
$this->result->out = $e->getMessage();
            if(isset(
$this->argtoks['flags']['h'])){
               
$this->Console->HALT();
            }
            return;
        }

       if(
$db->connected){
        
$this->result->code = 200;
        
$this->result->out = 'Ok';
       }else{
        
$this->result->code = 409;
        
$this->result->out = 'Error';
       }

         return
$this->result;
    }
   
    public function
required()
    {
      
$args = func_get_args();
    }
}