public void TestJoins() { var model = new SlowDataModelHelper(); var qb = new QueryBuilder <IEntity1>(model, null); var minId = 123; qb.Join(e => e.Child.Child.Child) .Where(e => e.Children.Each().SomeBool&& e.Id != minId) .OrderBy(e => e.Id) .OrderByDesc(e => e.ChildId) .Take(100) .Skip(10); var query = qb.Build(); var joins = query.Joins.ToList(); Assert.Equal(3, joins.Count); var qstr = query.ToString(); Assert.NotNull(query); }
public void TestColumnsMapping() { var sut = new SlowDataModelHelper(); var cols = sut.GetTableDataColumns(typeof(IEttx)).ToList(); Assert.Equal(5, cols.Count); }
public void TestRootEntityNameAndAlias() { var model = new SlowDataModelHelper(); var qb = new QueryBuilder <IEntity1>(model, null); var query = qb.Build(); Assert.Equal("Entity1", query.RootTableName); Assert.Equal(nameof(IEntity1), query.RootTableAlias); }
public void TestSelectedColumns() { var model = new SlowDataModelHelper(); var qb = new QueryBuilder <IEntity1>(model, null); var query = qb.Build(); Assert.Equal(0, query.Joins.Count()); var colsList = query.SelectedColumns.ToList(); Assert.Equal(5, colsList.Count); Assert.NotNull(colsList.Single(i => i.ColumnName == nameof(IEntity1.Id))); Assert.NotNull(colsList.Single(i => i.ColumnName == nameof(IEntity1.ChildId))); Assert.NotNull(colsList.Single(i => i.ColumnName == nameof(IEntity1.SomeText))); Assert.NotNull(colsList.Single(i => i.ColumnName == nameof(IEntity1.SomeBool))); Assert.NotNull(colsList.Single(i => i.ColumnName == nameof(IEntity1.ParentId))); Assert.True(colsList.All(i => i.EntityAlias == nameof(IEntity1))); }
public void TestBeingReferrenced() { var sut = new SlowDataModelHelper(); var refs = sut.GetReferences(typeof(IHouse)).ToList(); Assert.Equal(2, refs.Count); var referenceInfo = refs.Single(i => i.LeftModelPropertyName == nameof(IHouse.Owners)); Assert.Equal(typeof(IHouse), referenceInfo.LeftEntityType); Assert.Equal(nameof(IHouse.Id), referenceInfo.LeftKeyColumnName); Assert.Equal(nameof(IUser.HouseId), referenceInfo.RightKeyColumnName); Assert.Equal(typeof(IUser), referenceInfo.RightEntityType); referenceInfo = refs.Single(i => i.LeftModelPropertyName == nameof(IHouse.WeekendOwners)); Assert.Equal(typeof(IHouse), referenceInfo.LeftEntityType); Assert.Equal(nameof(IHouse.Id), referenceInfo.LeftKeyColumnName); Assert.Equal(nameof(IUser.WeekendHouseId), referenceInfo.RightKeyColumnName); Assert.Equal(typeof(IUser), referenceInfo.RightEntityType); }