Example #1
0
        public void Basic_Put_Get_Remove()
        {
            using (var store = new CacheStore(null))
            {
                var tbl1 = store["t1"];

                for (int i = 0; i < 1000; i++)
                {
                    var bo = new businessObject {
                        ID = i, Name = "Xroemson-{0}".Args(i), IsGood = i % 7 == 0
                    };
                    Assert.IsTrue(tbl1.Put((ulong)i, bo));
                }

                Assert.AreEqual(1000, tbl1.Count);

                Assert.IsTrue(tbl1.Remove(115));

                Assert.AreEqual(999, tbl1.Count);

                Assert.AreEqual("Xroemson-12", tbl1.Get(12).ValueAs <businessObject>().Name);
                Assert.AreEqual(null, tbl1.Get(115));
                Assert.AreEqual("Xroemson-999", tbl1.Get(999).ValueAs <businessObject>().Name);
                Assert.AreEqual(true, tbl1.Get(7).ValueAs <businessObject>().IsGood);
            }
        }
Example #2
0
        public void Get_Does_Not_See_AbsoluteExpired()
        {
            using (var store = new CacheStore(null))
            {
                var tbl1 = store["t1"];

                var utcNow = App.TimeSource.UTCNow;
                var utcExp = utcNow.AddSeconds(5);


                var bo1 = new businessObject {
                    ID = 1, Name = "Suvorov-1", IsGood = true
                };
                Assert.IsTrue(tbl1.Put(1, bo1, maxAgeSec: int.MaxValue, absoluteExpirationUTC: utcExp));

                var bo2 = new businessObject {
                    ID = 2, Name = "Meduzer-2", IsGood = false
                };
                Assert.IsTrue(tbl1.Put(2, bo2));



                Assert.AreEqual(2, tbl1.Count);

                System.Threading.Thread.Sleep(15000);// this timeout depends on store sweep thread speed, 15 sec span should be enough

                Assert.AreEqual(1, tbl1.Count);

                Assert.IsNull(tbl1.Get(1));                                                // expired
                Assert.AreEqual("Meduzer-2", tbl1.Get(2).ValueAs <businessObject>().Name); //still there
            }
        }
Example #3
0
        public void Put_Expire_Get()
        {
            using (var store = new CacheStore(null))
            {
                var tbl1 = store["t1"];

                for (int i = 0; i < 1000; i++)
                {
                    var bo = new businessObject {
                        ID = i, Name = "Suvorov-{0}".Args(i), IsGood = i % 7 == 0
                    };
                    Assert.IsTrue(tbl1.Put((ulong)i, bo, i < 500 ? 5 : 100));
                }

                Assert.AreEqual(1000, tbl1.Count);

                //warning: this timeout depends on how fast the store will purge garbage
                for (var spin = 0; spin < 20 && tbl1.Count != 500; spin++)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                Assert.AreEqual(500, tbl1.Count);

                Assert.AreEqual(null, tbl1.Get(1));
                Assert.AreEqual(null, tbl1.Get(499));
                Assert.AreEqual("Suvorov-500", tbl1.Get(500).ValueAs <businessObject>().Name);
                Assert.AreEqual("Suvorov-999", tbl1.Get(999).ValueAs <businessObject>().Name);
            }
        }
Example #4
0
        public void Basic_Put_Get_HitCount()
        {
            using (var store = new CacheStore(null))
            {
                var tbl1 = store["t1"];

                for (int i = 0; i < 100; i++)
                {
                    var bo = new businessObject {
                        ID = i, Name = "Froemson-{0}".Args(i), IsGood = i % 7 == 0
                    };
                    Assert.IsTrue(tbl1.Put((ulong)i, bo));
                }

                Assert.AreEqual(100, tbl1.Count);

                Assert.AreEqual("Froemson-12", tbl1.Get(12).ValueAs <businessObject>().Name);
                Assert.AreEqual("Froemson-12", store["t1", 12].ValueAs <businessObject>().Name);
                Assert.AreEqual(true, tbl1.Get(7).ValueAs <businessObject>().IsGood);

                Assert.AreEqual(1, tbl1.Get(0).HitCount);
                Assert.AreEqual(3, tbl1.Get(12).HitCount);
                Assert.AreEqual(2, tbl1.Get(7).HitCount);
            }
        }
Example #5
0
        public void customerLogin()
        {
            Console.WriteLine("enter login");
            string login = Console.ReadLine();

            Console.WriteLine("enter passwd");
            string         passwd = Console.ReadLine();
            businessObject bo     = new businessObject {
                login = login, passwd = passwd
            };
        }
        public void customerLogin()
        {
            Console.WriteLine("enter login");
            string login = Console.ReadLine();

            Console.WriteLine("enter passwd");
            string         passwd = Console.ReadLine();
            businessObject bo     = new businessObject {
                login = login, passwd = passwd
            };
            businessLogicLayerClass ob = new businessLogicLayerClass();

            ob.getCustomerLogin(bo);
        }
Example #7
0
        public void Basic_Put_Get()
        {
            using(var store = new CacheStore(null))
            {
              var tbl1 = store["t1"];

              for(int i=0; i<1000; i++)
              {
                  var bo = new businessObject { ID = i, Name = "Froemson-{0}".Args(i), IsGood = i%7==0};
                  Assert.IsTrue( tbl1.Put((ulong)i, bo) );
              }

              Assert.AreEqual( 1000, tbl1.Count);

              Assert.AreEqual( "Froemson-12",  tbl1.Get(12)     .ValueAs<businessObject>().Name );
              Assert.AreEqual( "Froemson-115",  store["t1", 115].ValueAs<businessObject>().Name );
              Assert.AreEqual( "Froemson-999", tbl1.Get(999)    .ValueAs<businessObject>().Name );
              Assert.AreEqual( true, tbl1.Get(7).ValueAs<businessObject>().IsGood );
            }
        }
Example #8
0
        public void Basic_Put_Get()
        {
            using (var store = new CacheStore(NOPApplication.Instance))
            {
                var tbl1 = store["t1"];

                for (int i = 0; i < 1000; i++)
                {
                    var bo = new businessObject {
                        ID = i, Name = "Froemson-{0}".Args(i), IsGood = i % 7 == 0
                    };
                    Aver.IsTrue(tbl1.Put((ulong)i, bo));
                }

                Aver.AreEqual(1000, tbl1.Count);

                Aver.AreEqual("Froemson-12", tbl1.Get(12).ValueAs <businessObject>().Name);
                Aver.AreEqual("Froemson-115", store["t1", 115].ValueAs <businessObject>().Name);
                Aver.AreEqual("Froemson-999", tbl1.Get(999).ValueAs <businessObject>().Name);
                Aver.AreEqual(true, tbl1.Get(7).ValueAs <businessObject>().IsGood);
            }
        }
Example #9
0
        public void Collision_Prevented_Priority()
        {
            using (var store = new CacheStore(null))
            {
                store.TableOptions.Register(new TableOptions("t1", 3, 7));
                var tbl1 = store["t1"];

                Assert.AreEqual(21, tbl1.Capacity);

                //because of the table size 3 x 7 both 0 and 21 map onto the same slot causing collision
                var obj1 = new businessObject {
                    ID = 0, Name = "Suvorov-1", IsGood = true
                };
                var obj2 = new businessObject {
                    ID = 21, Name = "Kozloff-21", IsGood = false
                };
                Assert.IsTrue(tbl1.Put(0, obj1, priority: 10)); //Suvorov has higher priority than Kozloff
                Assert.IsFalse(tbl1.Put(21, obj2));             //so collision does not happen

                Assert.AreEqual("Suvorov-1", tbl1.Get(0).ValueAs <businessObject>().Name);
                Assert.IsNull(tbl1.Get(21));
            }
        }
Example #10
0
        public void Get_Does_Not_See_Expired()
        {
            using (var store = new CacheStore(null))
            {
                var tbl1 = store["t1"];

                for (int i = 0; i < 200; i++)
                {
                    var bo = new businessObject {
                        ID = i, Name = "Suvorov-{0}".Args(i), IsGood = i % 7 == 0
                    };
                    Assert.IsTrue(tbl1.Put((ulong)i, bo));
                }

                Assert.AreEqual(200, tbl1.Count);

                Assert.IsNotNull(tbl1.Get(123, 3));                                                //3 sec old

                System.Threading.Thread.Sleep(15000);                                              // this timeout depends on store sweep thread speed, 15 sec span should be enough

                Assert.IsNull(tbl1.Get(123, 3));                                                   //3 sec old
                Assert.AreEqual("Suvorov-123", tbl1.Get(123, 25).ValueAs <businessObject>().Name); //25 sec old
            }
        }
Example #11
0
        public void Collision()
        {
            using (var store = new CacheStore(null))
            {
                store.TableOptions.Register(new TableOptions("t1", 3, 7));
                var tbl1 = store["t1"];

                Aver.AreEqual(21, tbl1.Capacity);

                var obj1 = new businessObject {
                    ID = 0, Name = "Suvorov-1", IsGood = true
                };
                var obj2 = new businessObject {
                    ID = 21, Name = "Kozloff-21", IsGood = false
                };

                //because of the table size 3 x 7 both 0 and 21 map onto the same slot causing collision
                Aver.IsTrue(tbl1.Put(0, obj1));
                Aver.IsFalse(tbl1.Put(21, obj2));

                Aver.IsNull(tbl1.Get(0));
                Aver.AreEqual("Kozloff-21", tbl1.Get(21).ValueAs <businessObject>().Name);
            }
        }
Example #12
0
        public void Put_Expire_Get()
        {
            using( var store = new CacheStore(null))
            {
              var tbl1 = store["t1"];

              for(int i=0; i<1000; i++)
              {
                  var bo = new businessObject { ID = i, Name = "Suvorov-{0}".Args(i), IsGood = i%7==0};
                  Assert.IsTrue( tbl1.Put((ulong)i, bo, i<500 ? 5 : 100 ) );
              }

              Assert.AreEqual( 1000, tbl1.Count);

              //warning: this timeout depends on how fast the store will purge garbage
              for(var spin=0; spin<20 && tbl1.Count!=500; spin++)
              {
                  System.Threading.Thread.Sleep( 1000 );
              }

              Assert.AreEqual( 500, tbl1.Count);

              Assert.AreEqual( null,  tbl1.Get(1) );
              Assert.AreEqual( null,  tbl1.Get(499) );
              Assert.AreEqual( "Suvorov-500",  tbl1.Get(500).ValueAs<businessObject>().Name );
              Assert.AreEqual( "Suvorov-999",  tbl1.Get(999).ValueAs<businessObject>().Name );
            }
        }
Example #13
0
        public void Get_Does_Not_See_Expired()
        {
            using(var store = new CacheStore(null))
            {
              var tbl1 = store["t1"];

              for(int i=0; i<200; i++)
              {
                  var bo = new businessObject { ID = i, Name = "Suvorov-{0}".Args(i), IsGood = i%7==0};
                  Assert.IsTrue( tbl1.Put((ulong)i, bo) );
              }

              Assert.AreEqual( 200, tbl1.Count);

              Assert.IsNotNull( tbl1.Get(123, 3) );//3 sec old

              System.Threading.Thread.Sleep( 15000 );// this timeout depends on store sweep thread speed, 15 sec span should be enough

              Assert.IsNull( tbl1.Get(123, 3) );//3 sec old
              Assert.AreEqual( "Suvorov-123",  tbl1.Get(123, 25).ValueAs<businessObject>().Name ); //25 sec old
            }
        }
Example #14
0
        public void Get_Does_Not_See_AbsoluteExpired()
        {
            using(var store = new CacheStore(null))
            {
              var tbl1 = store["t1"];

              var utcNow = App.TimeSource.UTCNow;
              var utcExp = utcNow.AddSeconds(5);

              var bo1 = new businessObject { ID = 1, Name = "Suvorov-1", IsGood = true};
              Assert.IsTrue( tbl1.Put(1, bo1, maxAgeSec: int.MaxValue, absoluteExpirationUTC: utcExp) );

              var bo2 = new businessObject { ID = 2, Name = "Meduzer-2", IsGood = false};
              Assert.IsTrue( tbl1.Put(2, bo2) );

              Assert.AreEqual( 2, tbl1.Count);

              System.Threading.Thread.Sleep( 15000 );// this timeout depends on store sweep thread speed, 15 sec span should be enough

              Assert.AreEqual( 1, tbl1.Count);

              Assert.IsNull( tbl1.Get(1) );// expired
              Assert.AreEqual( "Meduzer-2",  tbl1.Get(2).ValueAs<businessObject>().Name ); //still there
            }
        }
Example #15
0
        public void Collision_Prevented_Priority()
        {
            using(var store = new CacheStore(null))
            {
              store.TableOptions.Register( new TableOptions("t1",3 ,7) );
              var tbl1 = store["t1"];

              Assert.AreEqual( 21, tbl1.Capacity);

              //because of the table size 3 x 7 both 0 and 21 map onto the same slot causing collision
              var obj1 = new businessObject { ID = 0,  Name = "Suvorov-1", IsGood = true};
              var obj2 = new businessObject { ID = 21, Name = "Kozloff-21", IsGood = false};
              Assert.IsTrue( tbl1.Put(0, obj1, priority: 10) ); //Suvorov has higher priority than Kozloff
              Assert.IsFalse( tbl1.Put(21, obj2) );             //so collision does not happen

              Assert.AreEqual( "Suvorov-1",  tbl1.Get(0).ValueAs<businessObject>().Name );
              Assert.IsNull( tbl1.Get(21) );
            }
        }
Example #16
0
 public bool checkLogin(businessObject bo, string filename)
 {
     StreamReader sr =
 }
Example #17
0
 public void checkCustomerLogin(businessObject bo)
 {
 }
        public void getCustomerLogin(businessObject ob)
        {
            dataAcessLayerClass obj = new dataAcessLayerClass();

            obj.checkCustomerLogin(ob);
        }