예제 #1
0
파일: TestBase.cs 프로젝트: yufengfei/Aoite
        public TestBase()
        {
            var container = new IocContainer();

            this._factory = new ExecutorFactory(container);
            var type     = this.GetType();
            var db       = type.GetAttribute <DbAttribute>();
            var provider = db == null ? "ce" : db.Provider;

            switch (provider)
            {
            case "sql":
                this._testManager = new MsSqlTestManager();
                break;

            default:
                this._testManager = new MsCeTestManager();
                break;
            }
            this._Engine = this._testManager.Engine;

            container.Add <IDbEngine>(lmps => this.Context);

            var classScripts = this.GetType().GetAttribute <ScriptsAttribute>();

            if (classScripts != null)
            {
                this._testManager.Execute(classScripts.Keys);
            }
        }
예제 #2
0
        private void CreateTable(TestManagerBase manager)
        {
            var sql = ("CREATE TABLE TestTable(ID bigint PRIMARY KEY identity(1,1),UserName nvarchar(255))");
            manager.Engine
                .Execute(sql)
                .ToNonQuery();

        }
예제 #3
0
        private void CreateTable(TestManagerBase manager)
        {
            var sql = ("CREATE TABLE TestTable(Id bigint PRIMARY KEY identity(1,1),UserName nvarchar(255),Roles nvarchar(2000))");

            manager.Engine
            .Execute(sql)
            .ToNonQuery();
        }
예제 #4
0
 private void InsertRows(TestManagerBase manager, int rowCount = 10)
 {
     using(var dbContext = manager.Engine.ContextTransaction)
     {
         for(int i = 0; i < rowCount; i++)
         {
             dbContext.Execute("INSERT INTO TestTable(UserName) VALUES (@username)", "@username", "user" + i)
                 .ToNonQuery();
         }
         dbContext.Commit();
     }
 }
예제 #5
0
 private void InsertRows(TestManagerBase manager, int rowCount = 10)
 {
     using (var dbContext = manager.Engine.ContextTransaction)
     {
         for (int i = 0; i < rowCount; i++)
         {
             dbContext.Execute("INSERT INTO TestTable(UserName) VALUES (@username)", "@username", "user" + i)
             .ToNonQuery();
         }
         dbContext.Commit();
     }
 }
예제 #6
0
        void ITestMethodHandler.Start()
        {
            var container = new IocContainer();

            this._factory = new ExecutorFactory(container);
            var methodInfo = TestContext.MethodInfo.MethodInfo;
            var db         = methodInfo.GetAttribute <DbAttribute>();
            var provider   = db == null ? DbEngineProvider.MicrosoftSqlServerCompact : db.Provider;

            switch (provider)
            {
            case DbEngineProvider.MicrosoftSqlServer:
                this._testManager = new MsSqlTestManager();
                break;

            default:
                this._testManager = new MsCeTestManager();
                break;
            }
            Manager = this._testManager.Manager;
            container.AddService(this.Manager);
            container.AddService <IDbEngine>(lmps => this.Context);

            var methodScripts = methodInfo.GetAttribute <ScriptsAttribute>();

            if (methodScripts != null)
            {
                this._testManager.Execute(methodScripts.Keys);
            }
            else
            {
                var classScripts = this.GetType().GetAttribute <ScriptsAttribute>();
                if (classScripts != null)
                {
                    this._testManager.Execute(classScripts.Keys);
                }
            }
        }