public void SchemaRegistryCanAddNewRecords([ValueSource("ConnectionStrings")] string connectionString)
		{
			TestWithRollback(connectionString, connection =>
			{
				// create the registry
				SchemaRegistry registry = new SchemaRegistry(connection, TestSchemaGroup);

				// make sure the entries are empty
				Assert.AreEqual(0, registry.Entries.Count);

				// add an entry and save it to the database
				registry.Entries.Add(new SchemaRegistryEntry()
				{
					SchemaGroup = "test",
					ObjectName = "Beer",
					Type = SchemaObjectType.Table,
					Signature = "1234",
					OriginalOrder = 1
				});
				registry.Commit();

				// create another registry and make sure it loads the entries
				registry = new SchemaRegistry(connection, TestSchemaGroup);
				Assert.AreEqual(1, registry.Entries.Count);

				// add an second entry and save it to the database
				registry.Entries.Add(new SchemaRegistryEntry()
				{
					SchemaGroup = "test",
					ObjectName = "Beer2",
					Type = SchemaObjectType.Table,
					Signature = "1234",
					OriginalOrder = 2
				});
				registry.Commit();

				// create another registry and make sure it loads the entries
				registry = new SchemaRegistry(connection, TestSchemaGroup);
				Assert.AreEqual(2, registry.Entries.Count);
			});
		}
		public void SchemaRegistryShouldNotExecuteSchemaUpdateInRecordOnlyMode([ValueSource("ConnectionStrings")] string connectionString)
		{
			TestWithRollback(connectionString, connection =>
			{
				// only script the data
				connection.ScriptOnly = true;

				// create the registry
				SchemaRegistry registry = new SchemaRegistry(connection, TestSchemaGroup);
				registry.Entries.Add(new SchemaRegistryEntry()
				{
					SchemaGroup = "test",
					ObjectName = "Beer",
					Type = SchemaObjectType.Table,
					Signature = "1234",
					OriginalOrder = 1
				});
				registry.Commit();

				// we want to script the delete or insert into the registry, but not execute them in script mode
				Assert.IsTrue(connection.ScriptLog.ToString().Contains(String.Format("DELETE FROM [{0}]", SchemaRegistry.SchemaRegistryTableName)));
				Assert.IsTrue(connection.ScriptLog.ToString().Contains(String.Format("INSERT INTO [{0}]", SchemaRegistry.SchemaRegistryTableName)));
				Assert.IsFalse(connection.ExecutionLog.ToString().Contains(String.Format("DELETE FROM [{0}]", SchemaRegistry.SchemaRegistryTableName)));
				Assert.IsFalse(connection.ExecutionLog.ToString().Contains(String.Format("INSERT INTO [{0}]", SchemaRegistry.SchemaRegistryTableName)));
			});
		}