<commit_before>#region Disclaimer/Info
///////////////////////////////////////////////////////////////////////////////////////////////////
// Subtext WebLog
// 
// Subtext is an open source weblog system that is a fork of the .TEXT
// weblog system.
//
// For updated news and information please visit http://subtextproject.com/
// Subtext is hosted at SourceForge at http://sourceforge.net/projects/subtext
// The development mailing list is at <EMAIL> 
//
// This project is licensed under the BSD license.  See the License.txt file for more information.
///////////////////////////////////////////////////////////////////////////////////////////////////
#endregion

using System;
using MbUnit.Framework;
using Subtext.Scripting;

namespace UnitTests.Subtext.Scripting
{
	/// <summary>
	/// Summary description for ConnectionStringParseTests.
	/// </summary>
	[TestFixture]
	public class ConnectionStringTests
	{
		[RowTest]
		[Row("Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;", null, "pubs", "sa", "asdasd")]
		[Row("Data Source=TEST;User Id=sa;Password=<PASSWORD>;", "TEST", null, "sa", "asdasd")]
		[Row("Data Source=TEST;Initial Catalog=pubs;Password=<PASSWORD>;", "TEST", "pubs", null, "asdasd")]
		[Row("Data Source=TEST;Initial Catalog=pubs;User Id=sa;", "TEST", "pubs", "sa", null)]
		[Row("Data Source=TEST;Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;", "TEST", "pubs", "sa", "asdasd")]
		[Row("Data Source=;Initial Catalog=;User Id=;Password=;", "", "", "", "")]
		[Row("Data Source = TEST;Initial Catalog = pubs;User Id = sa;Password = <PASSWORD>", "TEST", "pubs", "sa", "asdasd")]
		[Row("Data Source = TEST;User Id = sa;Password = <PASSWORD>;Initial Catalog = pubs", "TEST", "pubs", "sa", "asdasd")]
		[Row("Server=127.0.0.1;Database=pubs;User ID=sa;Password=<PASSWORD>;Trusted_Connection=False", "127.0.0.1", "pubs", "sa", "asdasd")]
		[Row("Server= 127.0.0.1 ; Database = SubtextData; User ID = sa ; Password = <PASSWORD> ; Trusted_Connection = False", "127.0.0.1", "SubtextData", "sa", "asdasd")]
		public void CanVariousStandardSecurityConnectionStrings(string connectionString, string dataSource, string database, string userId, string password)
		{
			ConnectionString connectionInfo = ConnectionString.Parse(connectionString);
			Assert.AreEqual(database, connectionInfo.Database, "Did not parse the database string correctly.");
			Assert.AreEqual(dataSource, connectionInfo.Server, "Did not parse the server string correctly.");
			Assert.AreEqual(userId, connectionInfo.UserId, "Did not parse the user id correctly.");
			Assert.AreEqual(password, connectionInfo.Password, "Did not parse the password correctly.");

			//Test the implicit operation
			ConnectionString connectionInfo2 = connectionString;
			Assert.AreEqual(database, connectionInfo2.Database, "Did not parse the database string correctly.");
			Assert.AreEqual(dataSource, connectionInfo2.Server, "Did not parse the server string correctly.");
			Assert.AreEqual(userId, connectionInfo2.UserId, "Did not parse the user id correctly.");
			Assert.AreEqual(password, connectionInfo2.Password, "Did not parse the password correctly.");
		}

		[Test]
		public void CanSetPropertiesTest()
		{
			ConnectionString conn = ConnectionString.Parse("Data Source=TEST;Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;");
			conn.Database = "MyDatabase";
			Assert.AreEqual("MyDatabase", conn.Database);

			conn.UserId = "MyUser";
			Assert.AreEqual("MyUser", conn.UserId);

			conn.Password = "<PASSWORD>";
			Assert.AreEqual("MyPassword", conn.Password);

			conn.Server = "MyServer";
			Assert.AreEqual("MyServer", conn.Server);

			conn.TrustedConnection = true;
			Assert.AreEqual(true, conn.TrustedConnection);

			Assert.AreEqual("Data Source=MyServer;Initial Catalog=MyDatabase;Trusted_Connection=true", conn.ToString());
			conn.TrustedConnection = false;
			Assert.AreEqual("Data Source=MyServer;Initial Catalog=MyDatabase;User ID=MyUser;Password=<PASSWORD>;", conn.ToString());
		}

		[Test]
		public void EmptyConnectionStringIsWhatWeExpect()
		{
			Assert.AreEqual("Server=;Database=;User ID=;Password=;", ConnectionString.Empty);
		}

		[Test]
		public void ParseEmptyStringReturnsEmptyConnectionString()
		{
			Assert.AreEqual(ConnectionString.Empty, ConnectionString.Parse(string.Empty));
		}

		[Test]
		[ExpectedArgumentNullException]
		public void ParseThrowsArgumentNullException()
		{
			ConnectionString.Parse(null);<commit_msg>Whoops, fixed a broken unit test.<commit_after>#region Disclaimer/Info
///////////////////////////////////////////////////////////////////////////////////////////////////
// Subtext WebLog
// 
// Subtext is an open source weblog system that is a fork of the .TEXT
// weblog system.
//
// For updated news and information please visit http://subtextproject.com/
// Subtext is hosted at SourceForge at http://sourceforge.net/projects/subtext
// The development mailing list is at <EMAIL> 
//
// This project is licensed under the BSD license.  See the License.txt file for more information.
///////////////////////////////////////////////////////////////////////////////////////////////////
#endregion

using System;
using MbUnit.Framework;
using Subtext.Scripting;

namespace UnitTests.Subtext.Scripting
{
	/// <summary>
	/// Summary description for ConnectionStringParseTests.
	/// </summary>
	[TestFixture]
	public class ConnectionStringTests
	{
		[RowTest]
		[Row("Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;", null, "pubs", "sa", "asdasd")]
		[Row("Data Source=TEST;User Id=sa;Password=<PASSWORD>;", "TEST", null, "sa", "asdasd")]
		[Row("Data Source=TEST;Initial Catalog=pubs;Password=<PASSWORD>d;", "TEST", "pubs", null, "asdasd")]
		[Row("Data Source=TEST;Initial Catalog=pubs;User Id=sa;", "TEST", "pubs", "sa", null)]
		[Row("Data Source=TEST;Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;", "TEST", "pubs", "sa", "asdasd")]
		[Row("Data Source=;Initial Catalog=;User Id=;Password=;", "", "", "", "")]
		[Row("Data Source = TEST;Initial Catalog = pubs;User Id = sa;Password = <PASSWORD>", "TEST", "pubs", "sa", "asdasd")]
		[Row("Data Source = TEST;User Id = sa;Password = <PASSWORD>;Initial Catalog = pubs", "TEST", "pubs", "sa", "asdasd")]
		[Row("Server=127.0.0.1;Database=pubs;User ID=sa;Password=<PASSWORD>;Trusted_Connection=False", "127.0.0.1", "pubs", "sa", "asdasd")]
		[Row("Server= 127.0.0.1 ; Database = SubtextData; User ID = sa ; Password = <PASSWORD> ; Trusted_Connection = False", "127.0.0.1", "SubtextData", "sa", "asdasd")]
		public void CanVariousStandardSecurityConnectionStrings(string connectionString, string dataSource, string database, string userId, string password)
		{
			ConnectionString connectionInfo = ConnectionString.Parse(connectionString);
			Assert.AreEqual(database, connectionInfo.Database, "Did not parse the database string correctly.");
			Assert.AreEqual(dataSource, connectionInfo.Server, "Did not parse the server string correctly.");
			Assert.AreEqual(userId, connectionInfo.UserId, "Did not parse the user id correctly.");
			Assert.AreEqual(password, connectionInfo.Password, "Did not parse the password correctly.");

			//Test the implicit operation
			ConnectionString connectionInfo2 = connectionString;
			Assert.AreEqual(database, connectionInfo2.Database, "Did not parse the database string correctly.");
			Assert.AreEqual(dataSource, connectionInfo2.Server, "Did not parse the server string correctly.");
			Assert.AreEqual(userId, connectionInfo2.UserId, "Did not parse the user id correctly.");
			Assert.AreEqual(password, connectionInfo2.Password, "Did not parse the password correctly.");
		}

		[Test]
		public void CanSetPropertiesTest()
		{
			ConnectionString conn = ConnectionString.Parse("Data Source=TEST;Initial Catalog=pubs;User Id=sa;Password=<PASSWORD>;");
			conn.Database = "MyDatabase";
			Assert.AreEqual("MyDatabase", conn.Database);

			conn.UserId = "MyUser";
			Assert.AreEqual("MyUser", conn.UserId);

			conn.Password = "<PASSWORD>";
			Assert.AreEqual("MyPassword", conn.Password);

			conn.Server = "MyServer";
			Assert.AreEqual("MyServer", conn.Server);

			conn.TrustedConnection = true;
			Assert.AreEqual(true, conn.TrustedConnection);

			Assert.AreEqual("Data Source=MyServer;Initial Catalog=MyDatabase;Trusted_Connection=true", conn.ToString());
			conn.TrustedConnection = false;
			Assert.AreEqual("Data Source=MyServer;Initial Catalog=MyDatabase;User ID=MyUser;Password=<PASSWORD>;", conn.ToString());
		}

		[Test]
		public void EmptyConnectionStringIsWhatWeExpect()
		{
			Assert.AreEqual("Server=;Database=;User ID=;Password=;", ConnectionString.Empty.ToString());
		}

		[Test]
		public void ParseEmptyStringReturnsEmptyConnectionString()
		{
			Assert.AreEqual(ConnectionString.Empty, ConnectionString.Parse(string.Empty));
		}

		[Test]
		[ExpectedArgumentNullException]
		public void ParseThrowsArgumentNullException()
		{
			ConnectionString.Parse(null);
{'fraction_non_alphanumeric': 0.1823779668607255, 'fraction_numerical': 0.006493506493506494, 'mean_word_length': 4.242370892018779, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 8, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1565605', 'n_tokens_mistral': 2782, 'n_tokens_neox': 2555, 'n_words': 634}