Skip to content

Commit

Permalink
Remove PersistenceModel since it doesn't add any benefit at the moment
Browse files Browse the repository at this point in the history
  • Loading branch information
weelink committed Jul 25, 2019
1 parent 44cc1e2 commit 6effc97
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 98 deletions.
24 changes: 15 additions & 9 deletions src/FluentSQL.Tests/Api/ApiDesign.cs
@@ -1,12 +1,14 @@
using System.Data;
using System.Threading.Tasks;

using FluentSQL.Databases.SqlServer;
using FluentSQL.Databases;
using FluentSQL.Extensions;
using FluentSQL.Querying.Extensions;
using FluentSQL.Querying.Functions.Extensions;
using FluentSQL.Querying.Statements.Extensions;
using FluentSQL.Tests.Databases.Builders;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;

namespace FluentSQL.Tests.Api
{
Expand All @@ -16,7 +18,8 @@ public sealed class ApiDesign

public async Task TestApi()
{
var model = new ExampleModel(new SqlServerDatabase());
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();
Customers c = model.Customers;
Invoices i = model.Invoices;
InvoiceLines l = model.InvoiceLines;
Expand All @@ -29,7 +32,7 @@ public async Task TestApi()
* WHERE dbo.customers.id > 0
*/
Query<int> parameterless =
model
database
.Query<int>()
.From(() => model.Customers)
.Where(() => model.Customers.Id > 0)
Expand All @@ -44,7 +47,8 @@ public async Task TestApi()
* WHERE i2.invoice_number = i.invoice_number
*/
Query<ExampleParameters, SubqueryResult> subquery =
model.Query<SubqueryResult>().WithParameters<ExampleParameters>()
database
.Query<SubqueryResult>().WithParameters<ExampleParameters>()
.From(() => i2)
.Where(p => i2.InvoiceNumber == i.InvoiceNumber)
.Select(() => i2.InvoiceNumber).As(r => r.InvoiceIdFromSubquery)
Expand Down Expand Up @@ -73,7 +77,8 @@ public async Task TestApi()
* ORDER BY c.name DESC
*/
Query<ExampleParameters, int> parameterized =
model.Query<int>().WithParameters<ExampleParameters>()
database
.Query<int>().WithParameters<ExampleParameters>()
.From(() => c)
.InnerJoin(() => i).On(() => i.CustomerId == c.Id)
.LeftJoin(() => subquery).On(x => x.InvoiceIdFromSubquery == i.Id)
Expand Down Expand Up @@ -122,25 +127,26 @@ public async Task TestApi()
* FROM dbo.customers
*/
Query<ExampleParameters, UnionResult> unionQuery =
model.Query<UnionResult>().WithParameters<ExampleParameters>()
database
.Query<UnionResult>().WithParameters<ExampleParameters>()
.From(() => c)
.InnerJoin(() => i).On(() => i.CustomerId == c.Id)
.InnerJoin(() => l).On(() => l.InvoiceId == i.Id)
.Select(() => c.Name).As(result => result.CustomerName)
.Select(() => l.Price.Sum()).As(result => result.TotalAmount)
.Where(p => c.Id > p.Limit)
.UnionAll(model.Query<UnionResult>()
.UnionAll(database.Query<UnionResult>()
.From(() => c)
.Select(() => c.Name).As(result => result.CustomerName)
.Select(() => 1).As(result => result.TotalAmount)
)
.Union(model.Query<UnionResult>()
.Union(database.Query<UnionResult>()
.WithParameters<ExampleParameters>()
.From(() => model.Customers)
.Select(() => "dummy")
.Select(() => 1)
)
.Union(model.Query<UnionResult>()
.Union(database.Query<UnionResult>()
.From(() => model.Customers)
.Select(() => "other_dummy").As(result => result.CustomerName)
.Select(() => model.Customers.Id)
Expand Down
11 changes: 8 additions & 3 deletions src/FluentSQL.Tests/Compilation/Parser/FromQueryParserTests.cs
Expand Up @@ -4,11 +4,13 @@

using FluentSQL.Compilation.Parser;
using FluentSQL.Compilation.Parser.Nodes;
using FluentSQL.Databases;
using FluentSQL.Querying;
using FluentSQL.Querying.Statements.Extensions;
using FluentSQL.Tests.Builders;
using FluentSQL.Tests.Compilation.Parser.Builders;
using FluentSQL.Tests.Compilation.Parser.Extensions;
using FluentSQL.Tests.Databases.Builders;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;

Expand All @@ -22,10 +24,11 @@ public class When_parsing_without_an_alias : Specification<QueryParser>
{
protected override QueryParser EstablishContext()
{
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();

QueryContext =
model.Query<string>()
database.Query<string>()
.From(() => model.Customers)
.QueryContext;

Expand Down Expand Up @@ -57,11 +60,13 @@ public class When_parsing_with_an_alias : Specification<QueryParser>
{
protected override QueryParser EstablishContext()
{
Alias = new RandomStringBuilder().ThatStartsWithLetter.Build();
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();

Alias = new RandomStringBuilder().ThatStartsWithLetter.Build();

QueryContext =
model.Query<string>()
database.Query<string>()
.From(() => model.Customers).As(Alias)
.QueryContext;

Expand Down
8 changes: 4 additions & 4 deletions src/FluentSQL.Tests/Compilation/Parser/QueryParserTests.cs
@@ -1,10 +1,10 @@
using FluentSQL.Compilation.Parser;
using FluentSQL.Compilation.Parser.Nodes;
using FluentSQL.Databases;
using FluentSQL.Querying;
using FluentSQL.Tests.Compilation.Parser.Builders;
using FluentSQL.Tests.Compilation.Parser.Extensions;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;
using FluentSQL.Tests.Databases.Builders;

using Xunit;

Expand All @@ -16,8 +16,8 @@ public class When_parsing_an_empty_query : Specification<QueryParser>
{
protected override QueryParser EstablishContext()
{
ExampleModel model = new ExampleModelBuilder().Build();
QueryContext = model.Query<string>();
Database database = new DatabaseBuilder().Build();
QueryContext = database.Query<string>();

return new QueryParserBuilder().Build();
}
Expand Down
Expand Up @@ -2,11 +2,13 @@

using FluentSQL.Compilation.Parser;
using FluentSQL.Compilation.Parser.Nodes;
using FluentSQL.Databases;
using FluentSQL.Querying;
using FluentSQL.Querying.Statements.Extensions;
using FluentSQL.Tests.Builders;
using FluentSQL.Tests.Compilation.Parser.Builders;
using FluentSQL.Tests.Compilation.Parser.Extensions;
using FluentSQL.Tests.Databases.Builders;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;

Expand All @@ -20,18 +22,19 @@ public class When_parsing : Specification<QueryParser>
{
protected override QueryParser EstablishContext()
{
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();

FirstAlias = new RandomStringBuilder().ThatStartsWithLetter.Build();
SecondAlias = new RandomStringBuilder().ThatStartsWithLetter.Build();

QueryComponent<NoParameters, string> first =
model.Query<string>()
database.Query<string>()
.From(() => model.Customers).As(FirstAlias)
.Select(() => model.Customers.Name);

QueryComponent<NoParameters, string> second =
model.Query<string>()
database.Query<string>()
.From(() => model.Invoices).As(SecondAlias)
.Select(() => model.Invoices.InvoiceNumber);

Expand Down
Expand Up @@ -2,11 +2,13 @@

using FluentSQL.Compilation.Parser;
using FluentSQL.Compilation.Parser.Nodes;
using FluentSQL.Databases;
using FluentSQL.Querying;
using FluentSQL.Querying.Statements.Extensions;
using FluentSQL.Tests.Builders;
using FluentSQL.Tests.Compilation.Parser.Builders;
using FluentSQL.Tests.Compilation.Parser.Extensions;
using FluentSQL.Tests.Databases.Builders;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;

Expand All @@ -20,18 +22,19 @@ public class When_parsing : Specification<QueryParser>
{
protected override QueryParser EstablishContext()
{
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();

FirstAlias = new RandomStringBuilder().ThatStartsWithLetter.Build();
SecondAlias = new RandomStringBuilder().ThatStartsWithLetter.Build();

QueryComponent<NoParameters, string> first =
model.Query<string>()
database.Query<string>()
.From(() => model.Customers).As(FirstAlias)
.Select(() => model.Customers.Name);

QueryComponent<NoParameters, string> second =
model.Query<string>()
database.Query<string>()
.From(() => model.Invoices).As(SecondAlias)
.Select(() => model.Invoices.InvoiceNumber);

Expand Down
23 changes: 2 additions & 21 deletions src/FluentSQL.Tests/Examples/Builders/ExampleModelBuilder.cs
@@ -1,29 +1,10 @@
using FluentSQL.Databases;
using FluentSQL.Tests.Databases.Builders;

namespace FluentSQL.Tests.Examples.Builders
namespace FluentSQL.Tests.Examples.Builders
{
public class ExampleModelBuilder : TestDataBuilder<ExampleModel>
{
private Database Database { get; set; }

protected override void OnPreBuild()
{
if (Database == null)
{
WithDatabase(new DatabaseBuilder().Build());
}
}

protected override ExampleModel OnBuild()
{
return new ExampleModel(Database);
}

public ExampleModelBuilder WithDatabase(Database database)
{
Database = database;
return this;
return new ExampleModel();
}
}
}
12 changes: 2 additions & 10 deletions src/FluentSQL.Tests/Examples/ExampleModel.cs
@@ -1,18 +1,10 @@
using FluentSQL.Databases;
using FluentSQL.Modelling;

namespace FluentSQL.Tests.Examples
namespace FluentSQL.Tests.Examples
{
public class ExampleModel : PersistenceModel
public class ExampleModel
{
public readonly Customers Customers = new Customers();
public readonly InvoiceLines InvoiceLines = new InvoiceLines();

public readonly Invoices Invoices = new Invoices();

public ExampleModel(Database database)
: base(database)
{
}
}
}
6 changes: 5 additions & 1 deletion src/FluentSQL.Tests/Querying/QueryComponentTests.cs
@@ -1,8 +1,10 @@
using FluentAssertions;

using FluentSQL.Databases;
using FluentSQL.Querying;
using FluentSQL.Querying.Extensions;
using FluentSQL.Querying.Statements.Extensions;
using FluentSQL.Tests.Databases.Builders;
using FluentSQL.Tests.Examples;
using FluentSQL.Tests.Examples.Builders;

Expand All @@ -16,9 +18,11 @@ public class When_compiling_a_query : Specification<QueryComponent<NoParameters,
{
protected override QueryComponent<NoParameters, string> EstablishContext()
{
Database database = new DatabaseBuilder().Build();
ExampleModel model = new ExampleModelBuilder().Build();

QueryComponent<NoParameters, string> queryComponent =
model.Query<string>()
database.Query<string>()
.From(() => model.Customers)
.Select(() => model.Customers.Name);

Expand Down
2 changes: 0 additions & 2 deletions src/FluentSQL/Compilation/Parser/QueryParser.cs
Expand Up @@ -5,8 +5,6 @@
using FluentSQL.Querying;
using FluentSQL.Querying.Statements;

#pragma warning disable 1591

namespace FluentSQL.Compilation.Parser
{
public sealed class QueryParser
Expand Down
10 changes: 10 additions & 0 deletions src/FluentSQL/Databases/Database.cs
Expand Up @@ -19,6 +19,16 @@ protected Database(QueryCompiler compiler)
Compiler = compiler;
}

/// <summary>
/// Query this database.
/// </summary>
/// <typeparam name="TQueryResult">The result type of the query.</typeparam>
/// <returns>A new <see cref="QueryContext{TQueryResult}" />.</returns>
public QueryContext<TQueryResult> Query<TQueryResult>()
{
return new QueryContext<TQueryResult>(this);
}

private QueryCompiler Compiler { get; }

/// <summary>
Expand Down
34 changes: 0 additions & 34 deletions src/FluentSQL/Modelling/PersistenceModel.cs

This file was deleted.

0 comments on commit 6effc97

Please sign in to comment.