|
1 | | -using System; |
2 | | -using System.Collections.Generic; |
3 | | -using System.Text; |
4 | | -using SqlKata.Compilers; |
| 1 | +using SqlKata.Compilers; |
5 | 2 | using SqlKata.Extensions; |
| 3 | +using SqlKata.Tests.Infrastructure; |
6 | 4 | using Xunit; |
7 | 5 |
|
8 | 6 | namespace SqlKata.Tests |
9 | 7 | { |
10 | | - public partial class QueryBuilderTests |
| 8 | + public class QueryBuilderSelectTests : TestSupport |
11 | 9 | { |
12 | 10 | [Fact] |
13 | 11 | public void BasicSelect() |
@@ -582,5 +580,45 @@ public void LimitOffset() |
582 | 580 | Assert.Equal("SELECT * FROM \"users\" LIMIT 5 OFFSET 10", c[EngineCodes.PostgreSql]); |
583 | 581 | Assert.Equal("SELECT * FROM \"USERS\" ROWS 11 TO 15", c[EngineCodes.Firebird]); |
584 | 582 | } |
| 583 | + |
| 584 | + [Fact] |
| 585 | + public void BasicJoin() |
| 586 | + { |
| 587 | + var q = new Query().From("users").Join("countries", "countries.id", "users.country_id"); |
| 588 | + |
| 589 | + var c = Compile(q); |
| 590 | + |
| 591 | + Assert.Equal("SELECT * FROM [users] \nINNER JOIN [countries] ON [countries].[id] = [users].[country_id]", |
| 592 | + c[EngineCodes.SqlServer]); |
| 593 | + Assert.Equal("SELECT * FROM `users` \nINNER JOIN `countries` ON `countries`.`id` = `users`.`country_id`", |
| 594 | + c[EngineCodes.MySql]); |
| 595 | + } |
| 596 | + |
| 597 | + [Theory] |
| 598 | + [InlineData("inner join", "INNER JOIN")] |
| 599 | + [InlineData("left join", "LEFT JOIN")] |
| 600 | + [InlineData("right join", "RIGHT JOIN")] |
| 601 | + [InlineData("cross join", "CROSS JOIN")] |
| 602 | + public void JoinTypes(string given, string output) |
| 603 | + { |
| 604 | + var q = new Query().From("users") |
| 605 | + .Join("countries", "countries.id", "users.country_id", "=", given); |
| 606 | + |
| 607 | + var c = Compile(q); |
| 608 | + |
| 609 | + Assert.Equal($"SELECT * FROM [users] \n{output} [countries] ON [countries].[id] = [users].[country_id]", |
| 610 | + c[EngineCodes.SqlServer]); |
| 611 | + |
| 612 | + Assert.Equal($"SELECT * FROM `users` \n{output} `countries` ON `countries`.`id` = `users`.`country_id`", |
| 613 | + c[EngineCodes.MySql]); |
| 614 | + |
| 615 | + Assert.Equal( |
| 616 | + $"SELECT * FROM \"users\" \n{output} \"countries\" ON \"countries\".\"id\" = \"users\".\"country_id\"", |
| 617 | + c[EngineCodes.PostgreSql]); |
| 618 | + |
| 619 | + Assert.Equal( |
| 620 | + $"SELECT * FROM \"USERS\" \n{output} \"COUNTRIES\" ON \"COUNTRIES\".\"ID\" = \"USERS\".\"COUNTRY_ID\"", |
| 621 | + c[EngineCodes.Firebird]); |
| 622 | + } |
585 | 623 | } |
586 | 624 | } |
0 commit comments