public void From_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => "Employees"); Assert.AreEqual("SELECT * FROM Employees", cmd.GetCommandText(false)); cmd = link.From(x => "Employees AS Emp"); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees); Assert.AreEqual("SELECT * FROM Employees", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees.As(x.Emp)); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees.As("Emp")); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From( x => x.Employees.As(x.Emp), x => x.Countries.As(x.Ctry)) .Where(x => x.Emp.CountryId == x.Ctry.Id); Assert.AreEqual( "SELECT * FROM Employees AS Emp, Countries AS Ctry WHERE (Emp.CountryId = Ctry.Id)" , cmd.GetCommandText(false)); }
public void CoreCommand_Provider() { var engine = new Concrete.DataEngine(); var link = new FakeLink(engine, NestableTransactionMode.Database); var other = new FakeCommandProvider(link); other.TheCommand.From(x => x.Employees); var provider = new FakeCommandProvider(link); provider.TheCommand.From(x => x(other).As(x.Emp)); provider.TheCommand.Select(x => x.Number.As(x.Id)); provider.TheCommand.Where(x => x.Name == "James Bond"); var parser = new Concrete.Parser(engine); var pars = engine.CreateParameterCollection(); var result = parser.Parse(provider, pars); Assert.AreEqual( "SELECT Number AS Id FROM (SELECT * FROM Employees) AS Emp WHERE (Name = #0)" , result); Assert.AreEqual(1, pars.Count); Assert.AreEqual("James Bond", pars[0].Value); }
public void Select_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).Select(x => x.Id); Assert.AreEqual("SELECT Id FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => "Id"); Assert.AreEqual("SELECT Id FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => "Id AS Other"); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); Assert.AreEqual(1, cmd.Aliases.Count); Assert.AreEqual("Other", cmd.Aliases[0].Alias); cmd = link.From(x => x.Emp).Select(x => x.Id.As(x.Other)); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => x.Id.As("Other")); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => x.Emp.All()); Assert.AreEqual("SELECT Emp.* FROM Emp", cmd.GetCommandText(false)); var other = link.From(x => x.Countries.As(x.Ctry)).Select(x => x.Name); cmd = link.From(x => x.Emp).Select(x => x(other).As(x.Temp)); Assert.AreEqual( "SELECT (SELECT Name FROM Countries AS Ctry) AS Temp FROM Emp", cmd.GetCommandText(false)); }
public void From_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => "Employees"); Assert.AreEqual("SELECT * FROM Employees", cmd.GetCommandText(false)); cmd = link.From(x => "Employees AS Emp"); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees); Assert.AreEqual("SELECT * FROM Employees", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees.As(x.Emp)); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Employees.As("Emp")); Assert.AreEqual("SELECT * FROM Employees AS Emp", cmd.GetCommandText(false)); cmd = link.From( x => x.Employees.As(x.Emp), x => x.Countries.As(x.Ctry)) .Where(x => x.Emp.CountryId == x.Ctry.Id); Assert.AreEqual( "SELECT * FROM Employees AS Emp, Countries AS Ctry WHERE (Emp.CountryId = Ctry.Id)" , cmd.GetCommandText(false)); }
public void EmptyCommand() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); var str = cmd.TraceString().NullIfTrimmedIsEmpty() ?? "<empty>"; ConsoleEx.WriteLine("\n> {0}", str); Assert.IsFalse(cmd.CanBeExecuted); }
public void Empty_DeleteCommand_IsValid() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Delete(x => x.Employees); var str = cmd.TraceString().NullIfTrimmedIsEmpty() ?? "<empty>"; ConsoleEx.WriteLine("\n> {0}", str); Assert.IsTrue(cmd.CanBeExecuted); // In this case is valid }
public void EmptyCommand() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Raw(); var str = cmd.TraceString().NullIfTrimmedIsEmpty() ?? "<empty>"; ConsoleEx.WriteLine("\n> {0}", str); Assert.IsFalse(cmd.CanBeExecuted); }
public void Empty_DeleteCommand_IsValid() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Delete(x => x.Employees); var str = cmd.TraceString().NullIfTrimmedIsEmpty() ?? "<empty>"; ConsoleEx.WriteLine("\n> {0}", str); Assert.IsTrue(cmd.CanBeExecuted); // In this case is valid }
public void OrderBy_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).OrderBy(x => x.Id); Assert.AreEqual("SELECT * FROM Emp ORDER BY Id", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).OrderBy(x => x.Id.Asc()); Assert.AreEqual("SELECT * FROM Emp ORDER BY Id ASC", cmd.GetCommandText(false)); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link .Insert(x => x.Emp) .Columns( x => x.Id = "007", x => x.Name = "James Bond"); Assert.AreEqual("INSERT INTO Emp (Id, Name) VALUES (#0, #1)", cmd.GetCommandText(false)); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link .Insert(x => x.Emp) .Columns( x => x.Id = "007", x => x.Name = "James Bond"); Assert.AreEqual("INSERT INTO Emp (Id, Name) VALUES (#0, #1)", cmd.GetCommandText(false)); }
public void Join_With_Embedded_Scape_Syntax() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link .From(x => x.Emp) .Join(x => x("LEFT JOIN").x("Countries").As(x.Ctry).On(x.Ctry.Id == x.Emp.Id)); Assert.AreEqual( "SELECT * FROM Emp LEFT JOIN Countries AS Ctry ON (Ctry.Id = Emp.Id)", cmd.GetCommandText(false)); }
public void Set_Text_And_Arguments() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var str = "SELECT * FROM Employees WHERE LastName == {0}"; var cmd = link.Raw(str, "Bond"); ConsoleEx.WriteLine("\n> {0}", cmd.TraceString()); str = "SELECT * FROM Employees WHERE LastName == #0"; var temp = cmd.GetCommandText(false); Assert.AreEqual(str, temp); Assert.AreEqual("Bond", cmd.Parameters[0].Value); }
public void Join_Failures() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); try { cmd = link.From(x => x.Emp).Join(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd = link.From(x => x.Emp).Join(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd = link.From(x => x.Emp).Join(x => " "); Assert.Fail(); } catch (EmptyException) { } }
public void Set_Text_And_Arguments() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var str = "SELECT * FROM Employees WHERE LastName == {0}"; var cmd = link.Raw(str, "Bond"); ConsoleEx.WriteLine("\n> {0}", cmd.TraceString()); str = "SELECT * FROM Employees WHERE LastName == #0"; var temp = cmd.GetCommandText(false); Assert.AreEqual(str, temp); Assert.AreEqual("Bond", cmd.Parameters[0].Value); }
public void Where_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).Where(x => x.Name > 7); Assert.AreEqual("SELECT * FROM Emp WHERE (Name > #0)", cmd.GetCommandText(false)); Assert.AreEqual(1, cmd.Parameters.Count); Assert.AreEqual(7, cmd.Parameters[0].Value); cmd.Where(x => x.Or(x.Id == "007")); Assert.AreEqual("SELECT * FROM Emp WHERE (Name > #0) OR (Id = #1)", cmd.GetCommandText(false)); Assert.AreEqual(2, cmd.Parameters.Count); Assert.AreEqual("007", cmd.Parameters[1].Value); }
public void Embedded_Commands() { var engine = new Concrete.DataEngine(); var link = new FakeLink(engine, NestableTransactionMode.Database); var inner = link.Raw("SELECT * From WhoKnows WHERE Name == {0}", "James Bond"); var parser = new Concrete.Parser(engine); var pars = engine.CreateParameterCollection(); pars.AddCreate("PlaceHolderForPositionCero"); Assert.AreEqual(1, pars.Count); var result = parser.Parse(inner, pars); Assert.AreEqual("SELECT * From WhoKnows WHERE Name == #1", result); Assert.AreEqual(2, pars.Count); Assert.AreEqual("James Bond", pars[1].Value); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Delete(x => x.Emp); Assert.AreEqual("DELETE FROM Emp", cmd.GetCommandText(false)); try { cmd.Where(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd.Where(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd.Where(x => " "); Assert.Fail(); } catch (EmptyException) { } cmd = link .Delete(x => x.Emp) .Where(x => x.Name > 7); Assert.AreEqual("DELETE FROM Emp WHERE (Name > #0)", cmd.GetCommandText(false)); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Update(x => x.Emp); try { cmd.Where(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd.Where(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd.Where(x => " "); Assert.Fail(); } catch (EmptyException) { } cmd = link .Update(x => x.Emp) .Where(x => x.Name > 7) .Columns(x => x.Id = "007"); Assert.AreEqual("UPDATE Emp SET Id = #1 WHERE (Name > #0)", cmd.GetCommandText(false)); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Update(x => x.Emp); try { cmd.Where(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd.Where(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd.Where(x => " "); Assert.Fail(); } catch (EmptyException) { } cmd = link .Update(x => x.Emp) .Where(x => x.Name > 7) .Columns(x => x.Id = "007"); Assert.AreEqual("UPDATE Emp SET Id = #1 WHERE (Name > #0)", cmd.GetCommandText(false)); }
public void Examples() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Delete(x => x.Emp); Assert.AreEqual("DELETE FROM Emp", cmd.GetCommandText(false)); try { cmd.Where(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd.Where(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd.Where(x => " "); Assert.Fail(); } catch (EmptyException) { } cmd = link .Delete(x => x.Emp) .Where(x => x.Name > 7); Assert.AreEqual("DELETE FROM Emp WHERE (Name > #0)", cmd.GetCommandText(false)); }
public void Select_Failures() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); try { cmd = link.From(x => x.Emp).Select(null); Assert.Fail(); } catch (ArgumentNullException) { } try { cmd = link.From(x => x.Emp).Select(x => null); Assert.Fail(); } catch (ArgumentException) { } try { cmd = link.From(x => x.Emp).Select(x => " "); Assert.Fail(); } catch (EmptyException) { } try { cmd = link.From(x => x.Emp).Select(x => x.Id.As()); Assert.Fail(); } catch (ArgumentException) { } try { cmd = link.From(x => x.Emp).Select(x => x.Id.As(null)); Assert.Fail(); } catch (ArgumentException) { } try { cmd = link.From(x => x.Emp).Select(x => x.Id.As(" ")); Assert.Fail(); } catch (EmptyException) { } }
public void CoreCommand_Provider() { var engine = new Concrete.DataEngine(); var link = new FakeLink(engine, NestableTransactionMode.Database); var other = new FakeCommandProvider(link); other.TheCommand.From(x => x.Employees); var provider = new FakeCommandProvider(link); provider.TheCommand.From(x => x(other).As(x.Emp)); provider.TheCommand.Select(x => x.Number.As(x.Id)); provider.TheCommand.Where(x => x.Name == "James Bond"); var parser = new Concrete.Parser(engine); var pars = engine.CreateParameterCollection(); var result = parser.Parse(provider, pars); Assert.AreEqual( "SELECT Number AS Id FROM (SELECT * FROM Employees) AS Emp WHERE (Name = #0)" , result); Assert.AreEqual(1, pars.Count); Assert.AreEqual("James Bond", pars[0].Value); }
public void Select_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).Select(x => x.Id); Assert.AreEqual("SELECT Id FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => "Id"); Assert.AreEqual("SELECT Id FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => "Id AS Other"); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); Assert.AreEqual(1, cmd.Aliases.Count); Assert.AreEqual("Other", cmd.Aliases[0].Alias); cmd = link.From(x => x.Emp).Select(x => x.Id.As(x.Other)); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => x.Id.As("Other")); Assert.AreEqual("SELECT Id AS Other FROM Emp", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).Select(x => x.Emp.All()); Assert.AreEqual("SELECT Emp.* FROM Emp", cmd.GetCommandText(false)); var other = link.From(x => x.Countries.As(x.Ctry)).Select(x => x.Name); cmd = link.From(x => x.Emp).Select(x => x(other).As(x.Temp)); Assert.AreEqual( "SELECT (SELECT Name FROM Countries AS Ctry) AS Temp FROM Emp", cmd.GetCommandText(false)); }
public void Where_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).Where(x => x.Name > 7); Assert.AreEqual("SELECT * FROM Emp WHERE (Name > #0)", cmd.GetCommandText(false)); Assert.AreEqual(1, cmd.Parameters.Count); Assert.AreEqual(7, cmd.Parameters[0].Value); cmd.Where(x => x.Or(x.Id == "007")); Assert.AreEqual("SELECT * FROM Emp WHERE (Name > #0) OR (Id = #1)", cmd.GetCommandText(false)); Assert.AreEqual(2, cmd.Parameters.Count); Assert.AreEqual("007", cmd.Parameters[1].Value); }
public void OrderBy_Valids() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link.From(x => x.Emp).OrderBy(x => x.Id); Assert.AreEqual("SELECT * FROM Emp ORDER BY Id", cmd.GetCommandText(false)); cmd = link.From(x => x.Emp).OrderBy(x => x.Id.Asc()); Assert.AreEqual("SELECT * FROM Emp ORDER BY Id ASC", cmd.GetCommandText(false)); }
public void Join_With_Embedded_Scape_Syntax() { var link = new FakeLink(new Concrete.DataEngine(), NestableTransactionMode.Database); var cmd = link.Query(); cmd = link .From(x => x.Emp) .Join(x => x("LEFT JOIN").x("Countries").As(x.Ctry).On(x.Ctry.Id == x.Emp.Id)); Assert.AreEqual( "SELECT * FROM Emp LEFT JOIN Countries AS Ctry ON (Ctry.Id = Emp.Id)", cmd.GetCommandText(false)); }
public void Embedded_Commands() { var engine = new Concrete.DataEngine(); var link = new FakeLink(engine, NestableTransactionMode.Database); var inner = link.Raw("SELECT * From WhoKnows WHERE Name == {0}", "James Bond"); var parser = new Concrete.Parser(engine); var pars = engine.CreateParameterCollection(); pars.AddCreate("PlaceHolderForPositionCero"); Assert.AreEqual(1, pars.Count); var result = parser.Parse(inner, pars); Assert.AreEqual("SELECT * From WhoKnows WHERE Name == #1", result); Assert.AreEqual(2, pars.Count); Assert.AreEqual("James Bond", pars[1].Value); }