public void Serialized_Caching(Type serializerType)
        {
            var serializer = (ISerializer)ActivatorTool.CreateInstance(serializerType);
            var repository = new SharedCacheRepository(serializer);

            var tasks       = new List <TaskCacheItem>();
            var cachedTasks = new List <TaskCacheItem>();

            for (var i = 0; i < 10; i++)
            {
                var task = new TaskCacheItem()
                {
                    IsDone  = false,
                    Summary = "Task " + i + " to cached.",
                    Data    = ArrayTool.GetRandomBytes(0x2000)
                };

                tasks.Add(task);
                repository.Set(task.Id.ToString(), task);
            }

            foreach (var task in tasks)
            {
                var cachedTask = repository.Get(task.Id.ToString()) as TaskCacheItem;

                cachedTask.Should().Not.Be.Null();
                cachedTasks.Add(cachedTask);
            }
        }
        public void Can_Add_Multiple_And_Clear()
        {
            Cache.Clear();
            taskIdStrs.Clear();

            const int TaskCount = 1000;

            for (int i = 0; i < TaskCount; i++)
            {
                var task = new TaskCacheItem()
                {
                    IsDone  = false,
                    Summary = "Task " + i + " to cached.",
                    Data    = ArrayTool.GetRandomBytes(0x2000)
                };

                Cache.Add(task.Id.ToString(), task);
                taskIdStrs.Add(task.Id.ToString());
            }

            Assert.AreEqual(TaskCount, Cache.GetAllKeys().Count);

            foreach (var taskId in taskIdStrs)
            {
                Assert.IsNotNull(Cache.Get(taskId), "캐시에 해당 키의 정보가 없습니다. taskId=" + taskId);
            }
        }
        public void Can_Add_And_Load_Task()
        {
            Cache.Clear();

            var task = new TaskCacheItem
            {
                IsDone  = false,
                Summary = @"Task to cached.",
                Data    = ArrayTool.GetRandomBytes(0x2000)
            };

            var taskId = task.Id.ToString();

            Cache.Add(taskId, task);
            taskIdStrs.Add(taskId);

            var tasks = Cache.GetAllKeys().Select(key => Cache.Get <TaskCacheItem>(key)).ToList();

            Assert.IsTrue(tasks.Any(t => t.IsDone == false));

            var retrieved = Cache.Get <TaskCacheItem>(taskId);

            Assert.IsNotNull(retrieved);
            Assert.AreEqual(taskId, retrieved.Id.ToString());

            Cache.Clear();

            if (Cache.GetAllKeys().Contains(taskId))
            {
                retrieved = Cache.Get(taskId) as TaskCacheItem;
                Assert.IsNull(retrieved);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false)
            {
                ViewState["CurrentTime"] = DateTime.Now;

                // 엄청 큰 데이타를 Client로 내려보내지 않고 서버에서 관리합니다.
                //
                ViewState["LargeData"] = ArrayTool.GetRandomBytes(1024 * 128);
                ViewState["LargeStr"]  = StringTool.Replicate("동해물과 백두산이 마르고 닳도록", 100);
            }
        }
Example #5
0
        public void MassiveInsert(int taskCount)
        {
            for (var i = 0; i < taskCount; i++)
            {
                var item = new TaskCacheItem
                {
                    IsDone  = false,
                    Summary = "Task " + i + " to cached.",
                    Data    = ArrayTool.GetRandomBytes(DataSize)
                };

                Cache.Add(item.Id.ToString(), item, DateTime.Now.AddSeconds(5));
            }

            var stats = IndexusDistributionCache.SharedCache.GetStats();
        }
Example #6
0
        protected static Parent CreateParentObject(string name, int age, params Child[] children)
        {
            var parent = new Parent
            {
                Name        = name,
                Age         = age,
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            };

            foreach (var child in children)
            {
                parent.Children.Add(child);
                child.Parent = parent;
            }
            return(parent);
        }
Example #7
0
        public void MassiveInsertAsync(int taskCount)
        {
            var tasks = new List <Task>();

            for (var i = 0; i < taskCount; i++)
            {
                var item = new TaskCacheItem
                {
                    IsDone  = false,
                    Summary = "Task " + i + " to cached.",
                    Data    = ArrayTool.GetRandomBytes(DataSize)
                };

                var task = Task.Factory.StartNew(() => Cache.Add(item.Id.ToString(), item, DateTime.Now.AddSeconds(5)));
                tasks.Add(task);
            }

            Task.WaitAll(tasks.ToArray());

            var stats = IndexusDistributionCache.SharedCache.GetStats();
        }
Example #8
0
        /// <summary>
        /// 테스트용 임시 파일을 생성한다.
        /// </summary>
        public FileInfo CreateTestFile(string filepath, long size)
        {
            var fi = new FileInfo(filepath);

            var buffer = new byte[BufferSize];

            ArrayTool.GetRandomBytes(buffer);

            using (var bs = new BufferedStream(fi.OpenWrite())) {
                long writeCount = 0;
                do
                {
                    bs.Write(buffer, 0, BufferSize);
                    writeCount += BufferSize;
                } while(size > writeCount);

                bs.Flush();
            }

            return(fi);
        }
Example #9
0
        public void ExpirationTest(int taskCount)
        {
            TaskCacheItem item;

            for (var i = 0; i < taskCount; i++)
            {
                item = new TaskCacheItem()
                {
                    IsDone  = false,
                    Summary = "Task " + i + " to cached.",
                    Data    = ArrayTool.GetRandomBytes(DataSize)
                };

                Cache.Add(item.Id.ToString(), item, DateTime.Now.AddSeconds(1));
            }

            Thread.Sleep(TimeSpan.FromSeconds(2));

            item = new TaskCacheItem()
            {
                IsDone  = false,
                Summary = "Task xxxx to cached.",
                Data    = ArrayTool.GetRandomBytes(DataSize)
            };

            Cache.Add(item.Id.ToString(), item, DateTime.Now.AddSeconds(1));

            Thread.Sleep(TimeSpan.FromSeconds(2));

            item = new TaskCacheItem()
            {
                IsDone  = false,
                Summary = "Task xxxx to cached.",
                Data    = ArrayTool.GetRandomBytes(DataSize)
            };

            Cache.Add(item.Id.ToString(), item, DateTime.Now.AddSeconds(1));

            var stats = IndexusDistributionCache.SharedCache.GetStats();
        }
Example #10
0
        protected virtual void CreateObjectsInDB()
        {
            parentsInDB = new List <Parent>();

            parentsInDB.Add(CreateParentObject("Parent1", 100, new Child {
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            },
                                               new Child {
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            }));
            parentsInDB.Add(CreateParentObject("Parent2", 200, new Child {
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            },
                                               new Child {
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            }));
            parentsInDB.Add(CreateParentObject("Parent4", 400, new Child {
                Description = ArrayTool.GetRandomBytes(1024).BytesToHex()
            }));

            AssumeParentObjectNamesAreUnique(parentsInDB);
            SaveAndFlushToDatabase(parentsInDB);
        }
Example #11
0
        public UserInfo(string firstName, string lastName, string address,
                        string city, string state, string zipCode, string email,
                        string userName, string passWord)
        {
            FirstName = firstName;
            LastName  = lastName;
            Address   = address;
            City      = city;
            State     = state;
            ZipCode   = zipCode;
            Email     = email;
            UserName  = userName;
            Password  = passWord;

            Age        = 0;
            UpdateTime = DateTime.Now;

            ByteArray   = ArrayTool.GetRandomBytes(1024 * 4);
            Description = "동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세. Hello World. ".Replicate(10);

            HomeAddr   = new AddressInfo();
            OfficeAddr = new AddressInfo();
        }