From: Michael D. <mik...@us...> - 2004-08-18 20:15:12
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/SqlCommandTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32373/NHibernate.Test/SqlCommandTest Modified Files: SqlStringBuilderFixture.cs SqlStringFixture.cs Log Message: Added some methods to make SqlString and SqlStringBuilder more compatible with String and IList to help with Hql parsing. Index: SqlStringBuilderFixture.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/SqlCommandTest/SqlStringBuilderFixture.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SqlStringBuilderFixture.cs 16 Aug 2004 05:14:23 -0000 1.1 --- SqlStringBuilderFixture.cs 18 Aug 2004 20:15:03 -0000 1.2 *************** *** 25,28 **** --- 25,56 ---- } + + [Test] + public void RemoveAt() + { + SqlStringBuilder builder = new SqlStringBuilder(); + + builder.Add(" select * "); + builder.Add("from table"); + Assert.AreEqual( " select * from table", builder.ToSqlString().ToString() ); + + builder.RemoveAt(0); + Assert.AreEqual( "from table", builder.ToSqlString().ToString(), "Removed the first element in the SqlStringBuilder" ); + + builder.Insert(0, "SELECT * "); + Assert.AreEqual( "SELECT * from table", builder.ToSqlString().ToString() ); + } + + [Test] + public void Index() + { + SqlStringBuilder builder = new SqlStringBuilder(); + builder.Add(" select * "); + builder.Add("from table"); + + builder[0] = "SELECT * "; + Assert.AreEqual( "SELECT * from table", builder.ToSqlString().ToString() ); + Assert.AreEqual( "from table", builder[1] ); + } } } Index: SqlStringFixture.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/SqlCommandTest/SqlStringFixture.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SqlStringFixture.cs 16 Aug 2004 05:14:23 -0000 1.1 --- SqlStringFixture.cs 18 Aug 2004 20:15:04 -0000 1.2 *************** *** 32,35 **** --- 32,193 ---- } + + [Test] + public void EndsWith() + { + SqlString sql = new SqlString( new string[] {"select", " from table" } ); + Assert.IsTrue( sql.EndsWith("ble") ); + Assert.IsFalse( sql.EndsWith("'") ); + } + + [Test] + public void EndsWithEmptyString() + { + SqlString sql = new SqlString( new string[] { "", "select", " from table", "" } ); + Assert.IsTrue( sql.EndsWith("ble") ); + Assert.IsFalse( sql.EndsWith("'") ); + } + + [Test] + public void EndsWithParameter() + { + SqlString sql = new SqlString( new object[] { "", "select", " from table where id = ", new Parameter() } ); + Assert.IsFalse( sql.EndsWith("'") ); + Assert.IsFalse( sql.EndsWith("") ); + } + + [Test] + public void StartsWith() + { + SqlString sql = new SqlString( new string[] {"select", " from table" } ); + Assert.IsTrue( sql.StartsWith("s") ); + Assert.IsFalse( sql.StartsWith(",") ); + } + + [Test] + public void StartsWithEmptyString() + { + SqlString sql = new SqlString( new string[] { "", "select", " from table" } ); + Assert.IsTrue( sql.StartsWith("s") ); + Assert.IsFalse( sql.StartsWith(",") ); + } + + [Test] + public void CompactWithNoParams() + { + SqlString sql = new SqlString( new string[] { "", "select", " from table" } ); + SqlString compacted = sql.Compact(); + + Assert.AreEqual( 1, compacted.SqlParts.Length ); + Assert.AreEqual( "select from table", compacted.ToString() ); + } + + [Test] + public void CompactWithParams() + { + SqlStringBuilder builder = new SqlStringBuilder(); + Parameter param = new Parameter(); + param.Name = "id"; + param.SqlType = new SqlTypes.Int32SqlType(); + + builder.Add("select from table "); + builder.Add("where "); + builder.Add("id = "); + builder.Add(param); + builder.Add(" and "); + builder.Add("'a'='a'"); + + SqlString sql = builder.ToSqlString(); + sql = sql.Compact(); + + Assert.AreEqual( 3, sql.SqlParts.Length ); + Assert.AreEqual( "select from table where id = :id and 'a'='a'", sql.ToString() ); + + } + + [Test] + public void CompactWithNoString() + { + Parameter p1 = new Parameter(); + Parameter p2 = new Parameter(); + p1.Name = "p1"; + p2.Name = "p2"; + + SqlString sql = new SqlString( new object[] {p1, p2} ); + SqlString compacted = sql.Compact(); + + Assert.AreEqual( 2, compacted.SqlParts.Length ); + Assert.AreEqual( ":p1:p2", compacted.ToString() ); + + } + + [Test] + public void Substring() + { + SqlStringBuilder builder = new SqlStringBuilder(); + Parameter p = new Parameter(); + p.Name = "p1"; + + builder.Add(" select from table"); + builder.Add(" where p = "); + builder.Add(p); + + SqlString sql = builder.ToSqlString(); + + sql = sql.Substring(1); + + Assert.AreEqual( "select from table where p = :p1", sql.ToString() ); + + + } + + [Test] + public void TrimAllString() + { + SqlString sql = new SqlString( new string[] {" extra space", " in the middle", " at the end " } ); + sql = sql.Trim(); + + Assert.AreEqual( "extra space in the middle at the end", sql.ToString() ); + } + + [Test] + public void TrimBeginParamEndString() + { + Parameter p1 = new Parameter(); + p1.Name = "p1"; + + SqlString sql = new SqlString( new object[] {p1, " extra space "} ); + sql = sql.Trim(); + + Assert.AreEqual( ":p1 extra space", sql.ToString() ); + } + + [Test] + public void TrimBeginStringEndParam() + { + Parameter p1 = new Parameter(); + p1.Name = "p1"; + + SqlString sql = new SqlString( new object[] { " extra space ", p1 } ); + sql = sql.Trim(); + + Assert.AreEqual( "extra space :p1", sql.ToString() ); + } + + [Test] + public void TrimAllParam() + { + Parameter p1 = new Parameter(); + p1.Name = "p1"; + Parameter p2 = new Parameter(); + p2.Name = "p2"; + + SqlString sql = new SqlString( new object[] { p1, p2 } ); + sql = sql.Trim(); + + Assert.AreEqual( ":p1:p2", sql.ToString() ); + } + + } } |