public void Join()
        {
            // Arrange
            var otherQueryable = new ElmQueryable <TestOther>(provider);

            // Act
            var result = (from testPoco in queryable
                          join other in otherQueryable on testPoco equals other.TestPoco
                          select new { testPoco, other }).ToList();

            // Assert
            Assert.Empty(result);
            Assert.Equal("SELECT \"t\".\"Id\", \"t\".\"Name\", \"t\".\"Decimal", commandMock.Object.CommandText);
        }
        public TestElmQueryable()
        {
            driverMock = new Mock <IDatabaseDriver>();
            var mapper     = new Mapper();
            var connection = new Mock <IFolkeConnection>(); //  FolkeConnection.Create(driverMock.Object, mapper);

            connection.Setup(x => x.Mapper).Returns(mapper);
            connection.Setup(x => x.Driver).Returns(driverMock.Object);
            commandMock  = new Mock <IFolkeCommand>();
            dbReaderMock = new Mock <DbDataReader>();
            commandMock.Setup(x => x.ExecuteReader()).Returns(dbReaderMock.Object);
            commandMock.SetupProperty(x => x.CommandText);
            connection.Setup(x => x.CreateCommand(It.IsAny <string>(), It.IsAny <object[]>())).Returns(
                (string text, object[] parameters) =>
            {
                commandMock.Object.CommandText = text;
                return(commandMock.Object);
            });
            provider  = new ElmQueryProvider(connection.Object);
            queryable = new ElmQueryable <TestPoco>(null, provider);
        }