Ejemplo n.º 1
0
 /// <inheritdoc cref="QueryAsync{T}(IDbQuery, ulong, Func{IQueryBuilder, IQueryBuilderWithFrom}, IDbTransaction)"/>
 public static Task <Maybe <T> > QuerySingleAsync <T>(
     this IDbQuery @this,
     Func <IQueryBuilder, IQueryBuilderWithFrom> builder,
     IDbTransaction transaction
     ) =>
 QueryBuilderF.Build <T>(
     builder
     )
 .BindAsync(
     x => @this.QuerySingleAsync <T>(x, transaction)
     );
Ejemplo n.º 2
0
 /// <summary>
 /// Use a fluent <see cref="IQueryBuilder"/> to create a query to run against the database
 /// </summary>
 /// <typeparam name="T">Return model type</typeparam>
 /// <param name="this">IDbQuery</param>
 /// <param name="page">Page number</param>
 /// <param name="builder">Query builder</param>
 /// <param name="transaction">Database transaction</param>
 public static Task <Maybe <IPagedList <T> > > QueryAsync <T>(
     this IDbQuery @this,
     ulong page,
     Func <IQueryBuilder, IQueryBuilderWithFrom> builder,
     IDbTransaction transaction
     ) =>
 QueryBuilderF.Build <T>(
     builder
     )
 .BindAsync(
     x => @this.QueryAsync <T>(page, x, transaction)
     );
Ejemplo n.º 3
0
    public void Unable_To_Get_Column_Throws_UnableToGetColumnFromExpressionException()
    {
        // Arrange

        // Act
        var a0 = void() => QueryBuilderF.GetColumnFromExpression <BrokenTable>(t => t.Bar);
        var a1 = void() => QueryBuilderF.GetColumnFromExpression(new BrokenTable(), t => t.Bar);

        // Assert
        Assert.Throws <UnableToGetColumnFromExpressionException <BrokenTable> >(a0);
        Assert.Throws <UnableToGetColumnFromExpressionException <BrokenTable> >(a1);
    }
Ejemplo n.º 4
0
    public void Catches_Exception_Running_Builder_Returns_None_With_QueryBuilderExceptionMsg()
    {
        // Arrange
        var builder = Substitute.For <Func <IQueryBuilder, IQueryBuilderWithFrom> >();

        builder.Invoke(Arg.Any <IQueryBuilder>()).Throws <Exception>();

        // Act
        var result = QueryBuilderF.Build <int>(builder);

        // Assert
        result.AssertNone().AssertType <QueryBuilderExceptionMsg>();
    }
Ejemplo n.º 5
0
    public void Returns_Column_With_Property_Value_As_Name_And_Property_Name_As_Alias()
    {
        // Arrange
        var tableName = Rnd.Str;
        var table     = new TestTable(tableName);

        // Act
        var r0 = QueryBuilderF.GetColumnFromExpression(table, t => t.Foo);
        var r1 = QueryBuilderF.GetColumnFromExpression <TestTable>(t => t.Foo);

        // Assert
        Assert.Equal(tableName, r0.TblName.Name);
        Assert.Equal(table.Foo, r0.ColName);
        Assert.Equal(nameof(table.Foo), r0.ColAlias);
        Assert.Equal(nameof(TestTable), r1.TblName.Name);
        Assert.Equal(table.Foo, r1.ColName);
        Assert.Equal(nameof(table.Foo), r1.ColAlias);
    }