コード例 #1
0
        public void Correctly_constructs_action_executors()
        {
            DatabaseAction[] actions = new DatabaseAction[] { DatabaseAction.Create, DatabaseAction.Update };

            MockRepository          mocks    = new MockRepository();
            IDatabaseActionResolver resolver = mocks.CreateMock <IDatabaseActionResolver>();
            IDataBaseActionLocator  locator  = mocks.CreateMock <IDataBaseActionLocator>();

            IDatabaseActionExecutor creator = mocks.CreateMock <IDatabaseActionExecutor>();
            IDatabaseActionExecutor updater = mocks.CreateMock <IDatabaseActionExecutor>();

            using (mocks.Record())
            {
                Expect.Call(resolver.GetActions(RequestedDatabaseAction.Create)).Return(actions);
                Expect.Call(locator.CreateInstance(DatabaseAction.Create)).Return(creator);
                Expect.Call(locator.CreateInstance(DatabaseAction.Update)).Return(updater);
            }

            using (mocks.Playback())
            {
                IDatabaseActionExecutorFactory        factory      = new DatabaseActionExecutorFactory(resolver, locator);
                IEnumerable <IDatabaseActionExecutor> executors    = factory.GetExecutors(RequestedDatabaseAction.Create);
                IList <IDatabaseActionExecutor>       executorList = new List <IDatabaseActionExecutor>(executors);

                Assert.That(executorList, Is.EqualTo(new IDatabaseActionExecutor[] { creator, updater }));
            }

            mocks.VerifyAll();
        }
コード例 #2
0
		public void Manages_database()
		{
			var settings = new ConnectionSettings("server", "db", true, null, null);
            var scriptDirectory = @"c:\scripts"; 
            var taskAttributes = new TaskAttributes(settings, scriptDirectory);
            taskAttributes.RequestedDatabaseAction= RequestedDatabaseAction.Create;
			var mocks = new MockRepository();
			var taskObserver = mocks.StrictMock<ITaskObserver>();
            var generator = mocks.StrictMock<ILogMessageGenerator>();
            var factory = mocks.StrictMock<IDatabaseActionExecutorFactory>();

            var creator = mocks.StrictMock<IDatabaseActionExecutor>();
            var updater = mocks.StrictMock<IDatabaseActionExecutor>();

			var executors = new IDatabaseActionExecutor[] { creator, updater };

			using (mocks.Record())
			{
				Expect.Call(generator.GetInitialMessage(taskAttributes)).Return("starting...");
				taskObserver.Log("starting...");
				Expect.Call(factory.GetExecutors(RequestedDatabaseAction.Create)).Return(executors);

                creator.Execute(taskAttributes, taskObserver);
                updater.Execute(taskAttributes, taskObserver);
			}

			using (mocks.Playback())
			{
				ISqlDatabaseManager manager = new SqlDatabaseManager(generator, factory);

				manager.Upgrade(taskAttributes, taskObserver);
			}

			mocks.VerifyAll();
		}
コード例 #3
0
        public void Manages_database()
        {
            var settings        = new ConnectionSettings("server", "db", true, null, null);
            var scriptDirectory = @"c:\scripts";
            var taskAttributes  = new TaskAttributes(settings, scriptDirectory);

            var mocks        = new MockRepository();
            var taskObserver = mocks.CreateMock <ITaskObserver>();
            var generator    = mocks.CreateMock <ILogMessageGenerator>();
            var factory      = mocks.CreateMock <IDatabaseActionExecutorFactory>();

            var creator = mocks.CreateMock <IDatabaseActionExecutor>();
            var updater = mocks.CreateMock <IDatabaseActionExecutor>();

            var executors = new IDatabaseActionExecutor[] { creator, updater };

            using (mocks.Record())
            {
                Expect.Call(generator.GetInitialMessage(taskAttributes)).Return("starting...");
                taskObserver.Log("starting...");
                Expect.Call(factory.GetExecutors(RequestedDatabaseAction.Create)).Return(executors);

                creator.Execute(taskAttributes, taskObserver);
                updater.Execute(taskAttributes, taskObserver);
            }

            using (mocks.Playback())
            {
                ISqlDatabaseManager manager = new SqlDatabaseManager(generator, factory);

                manager.Upgrade(taskAttributes, taskObserver);
            }

            mocks.VerifyAll();
        }
コード例 #4
0
        public IEnumerable <IDatabaseActionExecutor> GetExecutors(RequestedDatabaseAction requestedDatabaseAction)
        {
            IEnumerable <DatabaseAction> actions = _resolver.GetActions(requestedDatabaseAction);

            foreach (DatabaseAction action in actions)
            {
                IDatabaseActionExecutor instance = _locator.CreateInstance(action);
                yield return(instance);
            }
        }