Code Duplication    Length = 23-31 lines in 2 locations

tests/model/SQLQueryTest.php 2 locations

@@ 361-383 (lines=23) @@
358
		);
359
	}
360
361
	public function testInnerJoin() {
362
		$query = new SQLQuery();
363
		$query->setFrom('MyTable');
364
		$query->addInnerJoin('MyOtherTable', 'MyOtherTable.ID = 2');
365
		$query->addLeftJoin('MyLastTable', 'MyOtherTable.ID = MyLastTable.ID');
366
367
		$this->assertSQLEquals('SELECT * FROM MyTable '.
368
			'INNER JOIN "MyOtherTable" ON MyOtherTable.ID = 2 '.
369
			'LEFT JOIN "MyLastTable" ON MyOtherTable.ID = MyLastTable.ID',
370
			$query->sql($parameters)
371
		);
372
373
		$query = new SQLQuery();
374
		$query->setFrom('MyTable');
375
		$query->addInnerJoin('MyOtherTable', 'MyOtherTable.ID = 2', 'table1');
376
		$query->addLeftJoin('MyLastTable', 'MyOtherTable.ID = MyLastTable.ID', 'table2');
377
378
		$this->assertSQLEquals('SELECT * FROM MyTable '.
379
			'INNER JOIN "MyOtherTable" AS "table1" ON MyOtherTable.ID = 2 '.
380
			'LEFT JOIN "MyLastTable" AS "table2" ON MyOtherTable.ID = MyLastTable.ID',
381
			$query->sql($parameters)
382
		);
383
	}
384
385
	public function testJoinSubSelect() {
386
@@ 385-415 (lines=31) @@
382
		);
383
	}
384
385
	public function testJoinSubSelect() {
386
387
		// Test sub-select works
388
		$query = new SQLQuery();
389
		$query->setFrom('"MyTable"');
390
		$query->addInnerJoin('(SELECT * FROM "MyOtherTable")',
391
			'"Mot"."MyTableID" = "MyTable"."ID"', 'Mot');
392
		$query->addLeftJoin('(SELECT "MyLastTable"."MyOtherTableID", COUNT(1) as "MyLastTableCount" '
393
			. 'FROM "MyLastTable" GROUP BY "MyOtherTableID")',
394
			'"Mlt"."MyOtherTableID" = "Mot"."ID"', 'Mlt');
395
		$query->setOrderBy('COALESCE("Mlt"."MyLastTableCount", 0) DESC');
396
397
		$this->assertSQLEquals('SELECT *, COALESCE("Mlt"."MyLastTableCount", 0) AS "_SortColumn0" FROM "MyTable" '.
398
			'INNER JOIN (SELECT * FROM "MyOtherTable") AS "Mot" ON "Mot"."MyTableID" = "MyTable"."ID" ' .
399
			'LEFT JOIN (SELECT "MyLastTable"."MyOtherTableID", COUNT(1) as "MyLastTableCount" FROM "MyLastTable" '
400
			. 'GROUP BY "MyOtherTableID") AS "Mlt" ON "Mlt"."MyOtherTableID" = "Mot"."ID" ' .
401
			'ORDER BY "_SortColumn0" DESC',
402
			$query->sql($parameters)
403
		);
404
405
		// Test that table names do not get mistakenly identified as sub-selects
406
		$query = new SQLQuery();
407
		$query->setFrom('"MyTable"');
408
		$query->addInnerJoin('NewsArticleSelected', '"News"."MyTableID" = "MyTable"."ID"', 'News');
409
		$this->assertSQLEquals(
410
			'SELECT * FROM "MyTable" INNER JOIN "NewsArticleSelected" AS "News" ON '.
411
			'"News"."MyTableID" = "MyTable"."ID"',
412
			$query->sql()
413
		);
414
415
	}
416
417
	public function testSetWhereAny() {
418
		$query = new SQLQuery();