Esempio n. 1
0
 public void ctor_CreateWithConnectionStringName()
 {
     var store = new SqlServerStore("name=foo");
     store.ConnectionString.Validate().IsNotNullOrEmpty();
     store.ConnectionString.Validate().IsEqual("bar");
     store.TableConfiguration.Validate().IsNotNull();
 }
        public void ctor_CreateWithConnectionStringName()
        {
            var store = new SqlServerStore("name=foo");

            store.ConnectionString.Validate().IsNotNullOrEmpty();
            store.ConnectionString.Validate().IsEqual("bar");
            store.TableMetadata.Validate().IsNotNull();
        }
Esempio n. 3
0
 public void TestRemoveAllLikeWithoutCriteria()
 {
     using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
         SqlServerStore <Bean> store = new SqlServerStore <Bean>("test");
         store.RemoveAllByCriteria(new FilterCriteria());
         Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
         Assert.AreEqual("delete from BEAN where BEA_PK = @BEA_PK", command.CommandText);
     }
 }
Esempio n. 4
0
 public void TestDelete()
 {
     using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
         SqlServerStore <Kinetix.Data.SqlClient.Test.Bean> store = new SqlServerStore <Kinetix.Data.SqlClient.Test.Bean>("test");
         store.Remove(1);
         Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
         Assert.IsTrue(command.CommandText.Contains("delete from BEAN where BEA_PK = @BEA_PK"));
     }
 }
Esempio n. 5
0
 public void ctor_CreateWithCustomSettingTableProperties()
 {
     var store = new SqlServerStore("foo", configure => configure
             .TableName("qux")
             .SchemaName("baz")
             .Column("corge", SqlDbType.Bit, 1)
     );
     store.ConnectionString.Validate().IsNotNullOrEmpty();
     store.ConnectionString.Validate().IsEqual("foo");
     store.TableConfiguration.Validate().IsNotNull();
     store.TableConfiguration.SchemaName.Validate().IsEqual("baz");
     store.TableConfiguration.TableName.Validate().IsEqual("qux");
     store.TableConfiguration.Columns["corge"].DbType.Validate().IsEqual(SqlDbType.Bit);
 }
        public void ctor_CreateWithCustomSettingTableProperties()
        {
            var store = new SqlServerStore("foo", configure => configure
                                           .TableName("qux")
                                           .SchemaName("baz")
                                           .Column("corge", SqlDbType.Bit, 1)
                                           );

            store.ConnectionString.Validate().IsNotNullOrEmpty();
            store.ConnectionString.Validate().IsEqual("foo");
            store.TableMetadata.Validate().IsNotNull();
            store.TableMetadata.SchemaName.Validate().IsEqual("baz");
            store.TableMetadata.TableName.Validate().IsEqual("qux");
            store.TableMetadata.Columns["corge"].DbType.Validate().IsEqual(SqlDbType.Bit);
        }
Esempio n. 7
0
        public void TestInsert()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                List <PkBean> list = new List <PkBean>();
                PkBean        b    = new PkBean();
                b.Pk = 1;
                list.Add(b);
                TestDbProviderFactory.DefinedNextResult(list);

                SqlServerStore <Kinetix.Data.SqlClient.Test.Bean> store = new SqlServerStore <Kinetix.Data.SqlClient.Test.Bean>("test");
                Assert.AreEqual(1, store.Put(new Kinetix.Data.SqlClient.Test.Bean()));
                Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
                Assert.IsTrue(command.CommandText.Contains("insert into BEAN(BEA_LONG, BEA_SHORT, BEA_GUID, BEA_FLOAT, BEA_DOUBLE, BEA_DECIMAL, BEA_DATETIME, BEA_CHARS, BEA_CHAR, BEA_BYTES, BEA_BYTE, BEA_BOOL, BEA_INT, BEA_STRING) values (@BEA_LONG, @BEA_SHORT, @BEA_GUID, @BEA_FLOAT, @BEA_DOUBLE, @BEA_DECIMAL, @BEA_DATETIME, @BEA_CHARS, @BEA_CHAR, @BEA_BYTES, @BEA_BYTE, @BEA_BOOL, @BEA_INT, @BEA_STRING)\nselect cast(SCOPE_IDENTITY() as int)"));
            }
        }
Esempio n. 8
0
        public void TestUpdate()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                List <PkBean> list = new List <PkBean>();
                PkBean        b    = new PkBean();
                b.Pk = 1;
                list.Add(b);
                TestDbProviderFactory.DefinedNextResult(list);

                SqlServerStore <Kinetix.Data.SqlClient.Test.Bean> store = new SqlServerStore <Kinetix.Data.SqlClient.Test.Bean>("test");
                Kinetix.Data.SqlClient.Test.Bean bean = new Kinetix.Data.SqlClient.Test.Bean();
                bean.Pk = 1;
                Assert.AreEqual(1, store.Put(bean));
                Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
                Assert.IsTrue(command.CommandText.Contains("update BEAN set BEA_LONG = @BEA_LONG, BEA_SHORT = @BEA_SHORT, BEA_GUID = @BEA_GUID, BEA_FLOAT = @BEA_FLOAT, BEA_DOUBLE = @BEA_DOUBLE, BEA_DECIMAL = @BEA_DECIMAL, BEA_DATETIME = @BEA_DATETIME, BEA_CHARS = @BEA_CHARS, BEA_CHAR = @BEA_CHAR, BEA_BYTES = @BEA_BYTES, BEA_BYTE = @BEA_BYTE, BEA_BOOL = @BEA_BOOL, BEA_INT = @BEA_INT, BEA_STRING = @BEA_STRING where BEA_PK = @BEA_PK"));
            }
        }
Esempio n. 9
0
        public void TestUpdateWithWhereCheck()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                List <PkBean> list = new List <PkBean>();
                PkBean        b    = new PkBean();
                b.Pk = 1;
                list.Add(b);
                TestDbProviderFactory.DefinedNextResult(list);

                SqlServerStore <Kinetix.Data.SqlClient.Test.Bean> store = new SqlServerStore <Kinetix.Data.SqlClient.Test.Bean>("test");
                TestStoreRule rule = new TestStoreRule("DataFloat");
                rule.WhereValue = new ValueRule(3, ActionRule.Check);
                store.AddRule(rule);
                Kinetix.Data.SqlClient.Test.Bean bean = new Kinetix.Data.SqlClient.Test.Bean();
                bean.Pk = 1;
                Assert.AreEqual(1, store.Put(bean));
                Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
                Assert.IsTrue(command.CommandText.Contains("update BEAN set BEA_LONG = @BEA_LONG, BEA_SHORT = @BEA_SHORT, BEA_GUID = @BEA_GUID, BEA_FLOAT = @BEA_FLOAT, BEA_DOUBLE = @BEA_DOUBLE, BEA_DECIMAL = @BEA_DECIMAL, BEA_DATETIME = @BEA_DATETIME, BEA_CHARS = @BEA_CHARS, BEA_CHAR = @BEA_CHAR, BEA_BYTES = @BEA_BYTES, BEA_BYTE = @BEA_BYTE, BEA_BOOL = @BEA_BOOL, BEA_INT = @BEA_INT, BEA_STRING = @BEA_STRING where BEA_PK = @BEA_PK and BEA_FLOAT = @RU_BEA_FLOAT"));
                Assert.AreEqual(3, command.Parameters["@RU_BEA_FLOAT"].Value);
            }
        }
Esempio n. 10
0
        public void TestLoadAllByCriteriaString()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                List <Kinetix.Data.SqlClient.Test.Bean> list = new List <Kinetix.Data.SqlClient.Test.Bean>();
                for (byte i = 0; i < 10; i++)
                {
                    Kinetix.Data.SqlClient.Test.Bean b = new Kinetix.Data.SqlClient.Test.Bean();
                    b.Pk           = i;
                    b.DataBool     = true;
                    b.DataByte     = i;
                    b.DataBytes    = new byte[i];
                    b.DataChar     = (char)(i + 64);
                    b.DataChars    = new char[i];
                    b.DataDateTime = DateTime.Now;
                    b.DataDecimal  = i;
                    b.DataDouble   = i;
                    b.DataFloat    = i;
                    b.DataGuid     = Guid.NewGuid();
                    b.DataInt      = i;
                    b.DataLong     = i;
                    b.DataShort    = i;
                    b.DataString   = i.ToString();
                    list.Add(b);
                }
                list.Add(new Kinetix.Data.SqlClient.Test.Bean());
                TestDbProviderFactory.DefinedNextResult(list);

                SqlServerStore <Kinetix.Data.SqlClient.Test.Bean> store = new SqlServerStore <Kinetix.Data.SqlClient.Test.Bean>("test");
                FilterCriteria criteria = new FilterCriteria()
                                          .Equals(Kinetix.Data.SqlClient.Test.Bean.Cols.BEA_FLOAT, 3)
                                          .StartsWith(Kinetix.Data.SqlClient.Test.Bean.Cols.BEA_STRING, "test")
                                          .NotStartsWith(Kinetix.Data.SqlClient.Test.Bean.Cols.BEA_STRING, "test2");
                QueryParameter sort = new QueryParameter(Kinetix.Data.SqlClient.Test.Bean.Cols.BEA_FLOAT, SortOrder.Asc);
                store.LoadAllByCriteria(null, criteria, sort);
                Kinetix.Data.SqlClient.Test.TestDbCommand command = Kinetix.Data.SqlClient.Test.TestDbCommand.LastCommand;
                Assert.AreEqual("select BEA_PK, BEA_LONG, BEA_SHORT, BEA_GUID, BEA_FLOAT, BEA_DOUBLE, BEA_DECIMAL, BEA_DATETIME, BEA_CHARS, BEA_CHAR, BEA_BYTE, BEA_BOOL, BEA_INT, BEA_STRING from BEAN where BEA_FLOAT = @BEA_FLOAT and BEA_STRING LIKE @BEA_STRING + '%' and BEA_STRING NOT LIKE @BEA_STRING2 + '%' order by BEA_FLOAT asc", command.CommandText);
                Assert.AreEqual(3, command.Parameters["@BEA_FLOAT"].Value);
                Assert.AreEqual("test", command.Parameters["@BEA_STRING"].Value);
            }
        }
Esempio n. 11
0
        public void DbDiskCacheIsSingleton()
        {
            var container = RRContainer.Current;
            var config    = new Mock <IRRConfiguration>();

            config.Setup(c => c.ContentStore).Returns(Configuration.Store.SqlServerStore);
            config.Setup(x => x.ConnectionStringName).Returns("RRConnection");
            container.Configure(x => x.For <IRRConfiguration>().Use(config.Object));
            RRContainer.LoadAppropriateStoreRegistry(container);
            SqlServerStore store1  = null;
            SqlServerStore store2  = null;
            var            thread1 = new Thread(TestThreadStart)
            {
                IsBackground = true
            };
            var thread2 = new Thread(TestThreadStart)
            {
                IsBackground = true
            };
            var array1 = new ArrayList {
                container, store1
            };
            var array2 = new ArrayList {
                container, store2
            };

            lock (container)
            {
                thread1.Start(array1);
                Monitor.Wait(container, 10000);
                thread2.Start(array2);
                Monitor.Wait(container, 10000);
            }

            Assert.NotSame(array1[1], array2[1]);
            Assert.Same((array1[1] as SqlServerStore).FileStore as DbDiskCache, (array2[1] as SqlServerStore).FileStore as DbDiskCache);
            RRContainer.Current = null;
        }
Esempio n. 12
0
        private IPersistenceStore Activate(object target)
        {
            IPersistenceStore retval = null;

            if (target.GetType().GetInterfaces().Contains(typeof(IPersistenceStore)))
            {
                switch (_config.PersistenceStoreType)
                {
                case PersistenceStoreType.Postgre:
                    retval = new PostgreStore(_config.ConnectionString);
                    break;

                case PersistenceStoreType.SqlServer:
                    retval = new SqlServerStore(_config.ConnectionString);
                    break;

                case PersistenceStoreType.InMemory:
                    retval = new InMemoryStore();
                    break;
                }
            }

            return(retval);
        }
Esempio n. 13
0
 public void TestConstructeur()
 {
     SqlServerStore <Bean> store = new SqlServerStore <Bean>("test");
 }