1+ <?php
2+ /*
3+ * $Id$
4+ *
5+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
6+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
7+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
8+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
9+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
11+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
12+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
13+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
14+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
15+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16+ *
17+ * This software consists of voluntary contributions made by many individuals
18+ * and is licensed under the LGPL. For more information, see
19+ * <http://www.doctrine-project.org>.
20+ */
21+
22+ /**
23+ * Doctrine_Ticket_DC840_TestCase
24+ *
25+ * @package Doctrine
26+ * @author Enrico Stahn <[email protected] > 27+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
28+ * @category Object Relational Mapping
29+ * @link www.doctrine-project.org
30+ * @since 1.0
31+ * @version $Revision$
32+ */
33+ class Doctrine_Ticket_DC840_TestCase extends Doctrine_UnitTestCase
34+ {
35+ private $ sqlStackCounter = 0 ;
36+
37+ public function prepareTables ()
38+ {
39+ $ this ->tables [] = 'Ticket_DC840_Model ' ;
40+ parent ::prepareTables ();
41+ }
42+
43+ public function testInit ()
44+ {
45+ $ this ->dbh = new Doctrine_Adapter_Mock ('mssql ' );
46+ $ this ->conn = Doctrine_Manager::getInstance ()->openConnection ($ this ->dbh , 'DC840 ' );
47+ }
48+
49+ public function testTest ()
50+ {
51+ $ q = Doctrine_Query::create ()
52+ ->select ('id ' )
53+ ->from ('Ticket_DC840_Model ' )
54+ ->andWhere ('password = ? ' , 'abc ' )
55+ ->andWhere ('modified_at > ? ' , '2010-01-01 ' )
56+ ->andWhere ('modified_at < ? ' , '2010-01-01 ' )
57+ ->andWhere ('modified_at <> ? ' , '2010-01-01 ' )
58+ ->andWhere ('modified_at <= ? ' , '2010-01-01 ' )
59+ ->andWhere ('modified_at >= ? ' , '2010-01-01 ' )
60+ ;
61+ $ q ->execute ();
62+
63+ $ expected = "SELECT [t].[id] AS [t__id] FROM [ticket__d_c840__model] [t] WHERE ([t].[password] = 'abc' AND [t].[modified_at] > '2010-01-01' AND [t].[modified_at] < '2010-01-01' AND [t].[modified_at] <> '2010-01-01' AND [t].[modified_at] <= '2010-01-01' AND [t].[modified_at] >= '2010-01-01') " ;
64+ $ sql = current (array_slice ($ this ->dbh ->getAll (), $ this ->sqlStackCounter ++, 1 ));
65+
66+ $ this ->assertEqual ($ expected , $ sql );
67+ }
68+ }
69+
70+ class Ticket_DC840_Model extends Doctrine_Record
71+ {
72+ public function setTableDefinition ()
73+ {
74+ $ this ->hasColumn ('id ' , 'integer ' , null , array (
75+ 'type ' => 'integer ' ,
76+ 'unsigned ' => false ,
77+ 'primary ' => true ,
78+ 'autoincrement ' => true ,
79+ ));
80+ $ this ->hasColumn ('modified_at ' , 'timestamp ' );
81+ $ this ->hasColumn ('username ' , 'string ' , 255 );
82+ $ this ->hasColumn ('password ' , 'string ' , 255 );
83+ }
84+ }
0 commit comments