public function testSchemaCanBeCreatedFromTable()
 {
     MySql::executeStatement("DROP TABLE IF EXISTS tblTest");
     MySql::executeStatement("CREATE TABLE `tblTest` (\n                `ID` INT(10) NOT NULL AUTO_INCREMENT,\n                `Nullable` INT(10) NULL DEFAULT NULL,\n                `DefaultColumn` VARCHAR(50) NOT NULL DEFAULT 'Smith',\n                `EnumColumn` ENUM('Open','Complete', 'Awaiting Feedback') NOT NULL,\n                `Name` VARCHAR(50) NOT NULL,\n                PRIMARY KEY (`ID`),\n                INDEX `Name` (`Name`)\n            )\n            COLLATE='latin1_swedish_ci'\n            ENGINE=InnoDB;");
     $comparisonSchema = MySqlComparisonSchema::fromTable("tblTest");
     $this->assertEquals(["ID" => "`ID` int(10) NOT NULL AUTO_INCREMENT", "Nullable" => "`Nullable` int(10) DEFAULT NULL", "DefaultColumn" => "`DefaultColumn` varchar(50) NOT NULL DEFAULT 'Smith'", "EnumColumn" => "`EnumColumn` enum('Open','Complete','Awaiting Feedback') NOT NULL", "Name" => "`Name` varchar(50) NOT NULL"], $comparisonSchema->columns);
     $this->assertEquals(["PRIMARY KEY (`ID`)", "KEY `Name` (`Name`)"], $comparisonSchema->indexes);
 }
 public function testSchemaIsCreated()
 {
     MySql::executeStatement("DROP TABLE IF EXISTS tblExample");
     $schema = new MysqlModelSchema("tblExample");
     $schema->addColumn(new AutoIncrement("ID"));
     $schema->addColumn(new String("Name", 40, "StrangeDefault"));
     $schema->addColumn(new MySqlEnum("Type", "A", ["A", "B", "C"]));
     $schema->addIndex(new Index("ID", Index::PRIMARY));
     $schema->checkSchema(Repository::getNewDefaultRepository(new Example()));
     $newSchema = MySqlComparisonSchema::fromTable("tblExample");
     $columns = $newSchema->columns;
     $this->assertCount(3, $columns);
     $this->assertEquals("`Name` varchar(40) NOT NULL DEFAULT 'StrangeDefault'", $columns["Name"]);
     $this->assertContains("`Type` enum('A','B','C') NOT NULL DEFAULT 'A'", $columns["Type"]);
     // Check schema equivalence
     $this->assertTrue($newSchema == MySqlComparisonSchema::fromMySqlSchema($schema));
 }
示例#3
0
 protected function setUp()
 {
     parent::setUp();
     MySql::executeStatement("TRUNCATE TABLE tblCompany");
     $example = new Company();
     $example->getRepository()->clearObjectCache();
     $example = new Company();
     $example->CompanyName = "a";
     $example->Balance = 1;
     $example->save();
     $example = new Company();
     $example->CompanyName = "b";
     $example->Balance = 2;
     $example->save();
     $example = new Company();
     $example->CompanyName = "c";
     $example->Balance = 3;
     $example->save();
 }
示例#4
0
    protected function printViewContent()
    {
        parent::printViewContent();
        $discussions = Gallery::find()->addSort('Order')->setRange(0, 6);
        $users = CustomUser::find(new Equals('Enabled', 1))->addSort('UserID', false)->setRange(0, 6);
        $sql = MySql::executeStatement('SELECT Source FROM tblImage ORDER BY RAND() LIMIT 6');
        $images = [];
        while ($a = $sql->fetch(\PDO::FETCH_ASSOC)) {
            $images[] = $a['Source'];
        }
        ?>
        <div class="__container noPadding">
            <?php 
        echo new ImagePanorama($images);
        ?>
        </div>
        <div class="row">
            <div class="discussion-group col-md-6">
                <div class="__container min-height-500">
                    <div class="center-block clearfix relative">
                        <h1 style="text-align: center">
                            Top 6 Galerijas
                        </h1>
                        <a href="gallery/add/" class="btn btn-primary right-side-title">Pievienot galeriju</a>
                    </div>
                    <div class="row" style="height: 150px; text-align: center">
                        <?php 
        foreach ($discussions as $discussion) {
            print '<div class="col-md-4 center-align">';
            print new GalleryPresenter($discussion);
            print '</div>';
        }
        ?>
                    </div>
                    <div class="__clear-floats"></div>
                    <div class="__clear-floats"></div>
                </div>
            </div>
            <div class="col-md-6">
                <div class="__container noPadding min-height-500">
                    <div class="center-block clearfix relative">
                        <h1 style="text-align: center">
                            6 Jaunākie biedri portālā!
                        </h1>
                        <a href="/portal/users/" class="btn btn-primary right-side-title">Redzēt visus</a>
                    </div>
                    <div class="row">
                        <?php 
        foreach ($users as $user) {
            print '<div class="col-md-4 center-align">';
            print new ProfileSummaryPresenter($user);
            print '</div>';
        }
        ?>
                    </div>
                    <div class="__clear-floats"></div>
                </div>
            </div>
        </div>

        <?php 
    }
 public function testLimits()
 {
     MySql::executeStatement("TRUNCATE TABLE tblCompany");
     $company = new Company();
     $repos = $company->getRepository();
     $repos->clearObjectCache();
     $company = new Company();
     $company->CompanyName = "A";
     $company->save();
     $company = new Company();
     $company->CompanyName = "B";
     $company->save();
     $company = new Company();
     $company->CompanyName = "B";
     $company->save();
     $company = new Company();
     $company->CompanyName = "B";
     $company->save();
     $company = new Company();
     $company->CompanyName = "C";
     $company->save();
     $company = new Company();
     $company->CompanyName = "D";
     $company->save();
     $list = new Collection("\\Rhubarb\\Stem\\Tests\\Fixtures\\Company");
     $list->setRange(2, 6);
     $this->assertCount(6, $list);
     $this->assertEquals("C", $list[2]->CompanyName);
     $sql = MySql::getPreviousStatement(true);
     $this->assertContains("LIMIT 2, 6", $sql);
     // Sorting by a computed column should mean that limits are no longer used.
     $list->addSort("CompanyIDSquared", true);
     $this->assertCount(6, $list);
     $this->assertEquals("C", $list[2]->CompanyName);
     $sql = MySql::getPreviousStatement();
     $this->assertNotContains("LIMIT 2, 6", $sql);
     $sql = MySql::getPreviousStatement(true);
     $this->assertNotContains("LIMIT 2, 6", $sql);
 }
示例#6
0
 public function testIsNullFilter()
 {
     MySql::executeStatement("TRUNCATE TABLE tblCompany");
     $company = new \Rhubarb\Stem\Tests\Fixtures\Company();
     $company->CompanyName = "GCD";
     $company->save();
     $companies = new Collection('Rhubarb\\Stem\\Tests\\Fixtures\\Company');
     $companies->filter(new Equals("CompanyName", null));
     $this->assertEquals(0, $companies->count());
     $companies = new Collection('Rhubarb\\Stem\\Tests\\Fixtures\\Company');
     $companies->filter(new Equals("ProjectCount", null));
     $this->assertEquals(1, $companies->count());
 }