public void run_task_wihtout_running_inside_transaction()
        {
            //migrations
            var migartions = new List<Migration>();
            //connection string
            var connectionString = "asdfasdf";
            //make arguments file
            var args = new Arguments(new string[] {ArgumentConstants.ConnectionStringArg, connectionString, ArgumentConstants.RunWithoutTransactionArg});

            var mock = new Rhino.Mocks.MockRepository();
            var fileIO = mock.DynamicMock<IFileIO>().OverloadFactory();
            var sqlRunner = mock.DynamicMock<ISqlRunner>().OverloadFactory();
            var migrationTaskFactory = mock.DynamicMock<IMigrationTaskFactory>().OverloadFactory();
            var migrationTask = mock.Stub<MigrationTask>(new[] {args});

            using (mock.Record())
            {
                //create sql script
                Expect.Call(migrationTaskFactory.GetMigrationTaskByTaskType(null))
                    .IgnoreArguments()
                    .Return(migrationTask);
                Expect.Call(migrationTask.Run()).Return(0);

                //get text for sql
                Expect.Call(fileIO.ReadConentsOfFile(null))
                    .IgnoreArguments()
                    .Return("test sql");

                //call sqlrunner
                Expect.Call(sqlRunner.ConnectionString).SetPropertyAndIgnoreArgument();
                Expect.Call(sqlRunner.RunSql("test sql", false))
                    .Return(0);
            }
            using (mock.Playback())
            {
                var runSqlTask = new MigrateDatabaseForwardTask(args);
                int success = runSqlTask.Run();

                Assert.AreEqual(0, success, "we should get 0 reuslting in a success");
            }
        }
        public void run_task_wihtout_running_inside_transaction()
        {
            var connectionString = "asdfasdf";
            string filePath = @"A:\test.sql";
            string sqlFileContents = "create table asdf()";

            var sqlRunner = MockRepository.GenerateMock<ISqlRunner>().OverloadFactory();
            var fileIo = MockRepository.GenerateMock<IFileIO>().OverloadFactory();

            var args = new Arguments(new[] { TaskTypeConstants.RunSqlFileTask, filePath, ArgumentConstants.ConnectionStringArg, connectionString });

            //get file contents...
            fileIo.Stub(io => io.ReadConentsOfFile(filePath)).Return(sqlFileContents);

            //Act
            var runSqlFileTask = new RunSqlFileTask(args);//, fileIo, sqlRunner);
            int success = runSqlFileTask.RunTask();

            //Assert
            sqlRunner.AssertWasCalled(x => x.ConnectionString = connectionString);
            sqlRunner.AssertWasCalled(x=>x.RunSql(sqlFileContents, true));
            Assert.That(success, Is.EqualTo(0));
        }
 private void RunTestCode(string commandTask)
 {
     var args = new Arguments(new[] { commandTask });
     Assert.That(Factory.Get<IMigrationTaskFactory>().GetMigrationTaskByTaskType(args), Is.Not.Null);
 }