public void CastToType_Dynamic_ActingOnIt_WithType()
        {
            // Assign
            var qry = new BaseEmployee[]
            {
                new Worker {
                    Name = "1"
                }, new Worker {
                    Name = "2"
                }
            }.AsQueryable();

            // Act
            var cast        = qry.Select(c => (Worker)c).ToArray();
            var castDynamic = qry.Select("Cast(@0)", typeof(Worker)).ToDynamicArray();

            // Assert
            Check.That(cast.Length).Equals(castDynamic.Length);
        }
        public void CastToType_Dynamic_ActingOnIt()
        {
            // Assign
            var qry = new BaseEmployee[]
            {
                new Worker {
                    Name = "1"
                }, new Worker {
                    Name = "2"
                }
            }.AsQueryable();

            // Act
            var cast        = qry.Select(c => (Worker)c).ToArray();
            var castDynamic = qry.Select("Cast(\"System.Linq.Dynamic.Core.Tests.Entities.Worker\")").ToDynamicArray();

            // Assert
            Check.That(cast.Length).Equals(castDynamic.Length);
        }
        public void CastToType_Dynamic_ActingOnIt_Throws()
        {
            // Assign
            var qry = new BaseEmployee[]
            {
                new Worker {
                    Name = "1"
                }, new Boss {
                    Name = "b"
                }
            }.AsQueryable();

            // Act
            Action castDynamic = () => qry.Select("Cast(\"System.Linq.Dynamic.Core.Tests.Entities.Worker\")").ToDynamicArray();

            // Assert
            Check.ThatCode(castDynamic).Throws <Exception>();
        }