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));
		}
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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
        }
Ejemplo n.º 7
0
		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
		}
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        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));
		}
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 13
0
		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);
		}
Ejemplo n.º 14
0
        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) { }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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));
		}
Ejemplo n.º 19
0
        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));
		}
Ejemplo n.º 21
0
        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));
        }
Ejemplo n.º 22
0
		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) { }
		}
Ejemplo n.º 23
0
		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);
		}
Ejemplo n.º 24
0
		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));
		}
Ejemplo n.º 25
0
		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);
		}
Ejemplo n.º 26
0
		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));
		}
Ejemplo n.º 27
0
		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));
		}
Ejemplo n.º 28
0
		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);
		}