public void Selects_Matching_Columns_From_Tables() { // Arrange var table = new TestTable0(); var builder = new QueryBuilderWithFrom(table); builder.Join <TestTable0, TestTable1>(QueryJoin.Inner, t => t.Foo, t => t.Bar); // Act var result = builder.Select <TestModel>(); // Assert var some = result.AssertSome(); Assert.Collection(some.SelectColumns, x => { Assert.Equal(nameof(TestTable0), x.TblName.Name); Assert.Equal(TestTable0.Prefix + nameof(TestTable0.Foo), x.ColName); Assert.Equal(nameof(TestTable0.Foo), x.ColAlias); }, x => { Assert.Equal(nameof(TestTable1), x.TblName.Name); Assert.Equal(TestTable1.Prefix + nameof(TestTable1.Bar), x.ColName); Assert.Equal(nameof(TestTable1.Bar), x.ColAlias); } ); }
public void From_Table_Not_Added_Throws_JoinFromTableNotAddedException() { // Arrange var table = Substitute.For <ITable>(); var builder = new QueryBuilderWithFrom(table); // Act var action = void() => builder.Join <TestTable0, TestTable0>(QueryJoin.Inner, t => t.Foo, t => t.Foo); // Assert Assert.Throws <JoinFromTableNotAddedException <TestTable0> >(action); }
public void Table_Not_Added_Throws_WhereTableNotAddedException() { // Arrange var table = Substitute.For <ITable>(); var builder = new QueryBuilderWithFrom(table); // Act var action = void() => builder.Where <TestTable>(t => t.Foo, Compare.Equal, Rnd.Str); // Assert Assert.Throws <WhereTableNotAddedException <TestTable> >(action); }
public void Table_Not_Added_Throws_Exception() { // Arrange var table = Substitute.For <ITable>(); var builder = new QueryBuilderWithFrom(table); // Act var action = void() => builder.CheckTable <TestTable, TestException <TestTable> >(); // Assert Assert.Throws <TestException <TestTable> >(action); }
public void Table_Already_Added_Does_Nothing() { // Arrange var table = new TestTable(); var builder = new QueryBuilderWithFrom(table); // Act builder.AddTable <TestTable>(); // Assert Assert.Collection(builder.Tables, x => Assert.IsType <TestTable>(x) ); }
public void Adds_To_Table_If_Not_Already_Added() { // Arrange var table = new TestTable0(); var builder = new QueryBuilderWithFrom(table); // Act builder.Join <TestTable0, TestTable1>(QueryJoin.Inner, t => t.Foo, t => t.Bar); // Assert Assert.Collection(builder.Tables, x => Assert.IsType <TestTable0>(x), x => Assert.IsType <TestTable1>(x) ); }
public void Sets_Skip() { // Arrange var table = Substitute.For <ITable>(); var builder = new QueryBuilderWithFrom(table); var value = Rnd.ULng; // Act var result = builder.Skip(value); // Assert var from = Assert.IsType <QueryBuilderWithFrom>(result); Assert.Equal(value, from.Parts.Skip); }
public void Table_Not_Added_Adds_Table() { // Arrange var table = Substitute.For <ITable>(); var builder = new QueryBuilderWithFrom(table); // Act builder.AddTable <TestTable>(); // Assert Assert.Collection(builder.Tables, x => Assert.Same(table, x), x => Assert.IsType <TestTable>(x) ); }
public void Table_Added_Does_Nothing() { // Arrange var table = new TestTable(); var builder = new QueryBuilderWithFrom(table); // Act bool action() { builder.CheckTable <TestTable, TestException <TestTable> >(); return(true); } // Assert Assert.True(action()); }
public void Adds_Predicate_To_Where_List() { // Arrange var table = new TestTable(); var builder = new QueryBuilderWithFrom(table); var value = Rnd.Str; // Act var result = (QueryBuilderWithFrom)builder.Where <TestTable>(t => t.Foo, Compare.Like, value); // Assert Assert.Collection(result.Parts.Where, x => { Assert.Equal(nameof(TestTable), x.column.TblName.Name); Assert.Equal(TestTable.Prefix + nameof(TestTable0.Foo), x.column.ColName); Assert.Equal(nameof(TestTable.Foo), x.column.ColAlias); Assert.Equal(Compare.Like, x.compare); Assert.Equal(value, x.value); } ); }