/// <inheritdoc/> public IFluentQuery <TEntity, TId> Sort(string columnAlias, SortOrder order) { if (Errors.Count > 0) { return(this); } return(QueryF.GetColumnFromAlias(Table, columnAlias).Switch( some: x => Update(parts => parts with { Sort = parts.Sort.WithItem((x, order)) }),
public void StrongId_Returns_StrongId_Value() { // Arrange var value = Rnd.Lng; // Act var result = QueryF.GetParameterValue(new TestId(value)); // Assert Assert.Equal(value, result); }
public void Not_StrongId_Returns_Original_Value() { // Arrange var value = Rnd.Str; // Act var result = QueryF.GetParameterValue(value); // Assert Assert.Same(value, result); }
public void No_Matching_Columns_Returns_Empty_List() { // Arrange var table = new FooTable(); // Act var result = QueryF.GetColumnsFromTable <FooNone>(table); // Assert Assert.Empty(result); }
public void Unable_To_Get_Column_Returns_PropertyDoesNotExistOnTypeMsg() { // Arrange // Act var r0 = QueryF.GetColumnFromExpression <BrokenTable>(t => t.Bar); var r1 = QueryF.GetColumnFromExpression(new BrokenTable(), t => t.Bar); // Assert r0.AssertNone().AssertType <PropertyDoesNotExistOnTypeMsg <BrokenTable> >(); r1.AssertNone().AssertType <PropertyDoesNotExistOnTypeMsg <BrokenTable> >(); }
public void Returns_Properties_Without_Ignored() { // Arrange // Act var result = QueryF.GetModelProperties <TestModel>(); // Assert Assert.Collection(result, x => Assert.Equal(nameof(TestModel.Foo), x.Name), x => Assert.Equal(nameof(TestModel.Bar), x.Name) ); }
public void No_Columns_Returns_Empty_String() { // Arrange var client = Substitute.For <IDbClient>(); var columns = new ColumnList(); // Act var result = QueryF.GetColumnsFromList(client, columns); // Assert Assert.Empty(result); client.DidNotReceiveWithAnyArgs().Escape(Arg.Any <IColumn>(), true); }
public void Property_Does_Not_Exist_On_Table__Returns_None_With_NoMatchingItemsMsg() { // Arrange var table = new TestTable(); // Act var r0 = QueryF.GetColumnFromAlias(table, Rnd.Str); var r1 = QueryF.GetColumnFromAlias <TestTable>(Rnd.Str); // Assert r0.AssertNone().AssertType <NoMatchingItemsMsg>(); r1.AssertNone().AssertType <NoMatchingItemsMsg>(); }
public void No_Columns_Returns_Empty_String() { // Arrange var client = Substitute.For <IDbClient>(); var columns = new ColumnList(); // Act var result = QueryF.GetSelectFromList(client, columns); // Assert Assert.Equal(string.Empty, result); client.DidNotReceiveWithAnyArgs().EscapeWithTable(Arg.Any <IColumn>(), true); client.DidNotReceiveWithAnyArgs().JoinList(Arg.Any <List <string> >(), false); }
public void Returns_Extracted_Columns() { // Arrange var table = new FooTable(); // Act var result = QueryF.GetColumnsFromTable <Foo>(table); // Assert Assert.Collection(result, x => Assert.Equal((table.GetName(), table.FooId), (x.TblName, x.ColName)), x => Assert.Equal(table.Bar0, x.ColName), x => Assert.Equal(table.Bar1, x.ColName) ); }
public void Escapes_And_Joins_Columns() { // Arrange var client = Substitute.For <IDbClient>(); var c0 = Substitute.For <IColumn>(); var c1 = Substitute.For <IColumn>(); var columns = new ColumnList(new[] { c0, c1 }); // Act QueryF.GetSelectFromList(client, columns); // Assert client.Received(1).EscapeWithTable(c0, true); client.Received(1).EscapeWithTable(c1, true); client.ReceivedWithAnyArgs(1).JoinList(Arg.Any <List <string> >(), false); }
public void Escapes_And_Joins_Columns() { // Arrange var client = Substitute.For <IDbClient>(); var c0 = Substitute.For <IColumn>(); var c1 = Substitute.For <IColumn>(); var columns = new ColumnList(new[] { c0, c1 }); // Act var result = QueryF.GetColumnsFromList(client, columns); // Assert client.Received(1).Escape(c0, true); client.Received(1).Escape(c1, true); Assert.Equal(2, result.Count); }
public void Property_Exists__Get_Value_Is_Null__Returns_None_With_UnableToGetColumnFromAliasMsg() { // Arrange var table = new TestTable(); var alias = nameof(TestTable.Foo); // Act var r0 = QueryF.GetColumnFromAlias(table, alias); var r1 = QueryF.GetColumnFromAlias <TestTable>(alias); // Assert var n0 = r0.AssertNone().AssertType <UnableToGetColumnFromAliasMsg>(); Assert.Equal(table, n0.Table); Assert.Equal(alias, n0.ColumnAlias); var n1 = r1.AssertNone().AssertType <UnableToGetColumnFromAliasMsg>(); Assert.Equal(table, n1.Table); Assert.Equal(alias, n1.ColumnAlias); }
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 = QueryF.GetColumnFromExpression(table, t => t.Foo); var r1 = QueryF.GetColumnFromExpression <TestTable>(t => t.Foo); // Assert var s0 = r0.AssertSome(); Assert.Equal(tableName, s0.TblName.Name); Assert.Equal(table.Foo, s0.ColName); Assert.Equal(nameof(table.Foo), s0.ColAlias); var s1 = r1.AssertSome(); Assert.Equal("TestTable", s1.TblName.Name); Assert.Equal(table.Foo, s1.ColName); Assert.Equal(nameof(table.Foo), s1.ColAlias); }
public void Property_Exists__Get_Value_Is_String__Returns_Column_With_Correct_Values() { // Arrange var table = new TestTable(); var alias = nameof(TestTable.Bar); var value = nameof(TestTable) + nameof(TestTable.Bar); // Act var r0 = QueryF.GetColumnFromAlias(table, alias); var r1 = QueryF.GetColumnFromAlias <TestTable>(alias); // Assert var s0 = r0.AssertSome(); Assert.Equal(table.GetName(), s0.TblName); Assert.Equal(alias, s0.ColAlias); Assert.Equal(value, s0.ColName); var s1 = r1.AssertSome(); Assert.Equal(table.GetName(), s1.TblName); Assert.Equal(alias, s1.ColAlias); Assert.Equal(value, s1.ColName); }
/// <inheritdoc/> public Task <Maybe <TValue> > ExecuteAsync <TValue>(string columnAlias, IDbTransaction transaction) => QueryF.GetColumnFromAlias(Table, columnAlias) .BindAsync(x =>
/// <summary> /// Build a column object from a column selector expression /// </summary> /// <typeparam name="TTable">Table type</typeparam> /// <param name="table">Table object</param> /// <param name="column">Column expression</param> public static IColumn GetColumnFromExpression <TTable>(TTable table, Expression <Func <TTable, string> > column) where TTable : ITable => QueryF.GetColumnFromExpression(table, column) .Unwrap( () => throw new UnableToGetColumnFromExpressionException <TTable>()