示例#1
0
        public void TestBinaryStringPoolArrayModification()
        {
            var encoding  = new UTF8Encoding(false, false);
            var pool      = BinaryStringPoolFactory.NewNotConcurrentBinaryStringPool(encoding);
            var str       = "Test";
            var strBytes  = encoding.GetBytes(str);
            var strPooled = pool.GetString(strBytes);

            strBytes[1] = 1;
            var strPooled2 = pool.GetString(encoding.GetBytes(str));

            Assert.AreSame(strPooled, strPooled2);
        }
示例#2
0
        public void TestBinaryStringPoolCaching()
        {
            var encoding   = new UTF8Encoding(false, false);
            var pool       = BinaryStringPoolFactory.NewNotConcurrentBinaryStringPool(encoding);
            var str1       = "Test";
            var str1Pooled = pool.GetString(encoding.GetBytes(str1));

            Assert.AreEqual(str1, str1Pooled);
            Assert.AreNotSame(str1, str1Pooled);
            var str1PooledAgain = pool.GetString(encoding.GetBytes(str1));

            Assert.AreSame(str1Pooled, str1PooledAgain);
        }
示例#3
0
        public void TestBinaryStringPoolDifferentStrings()
        {
            var encoding   = new UTF8Encoding(false, false);
            var pool       = BinaryStringPoolFactory.NewNotConcurrentBinaryStringPool(encoding);
            var str1       = "Test";
            var str1Pooled = pool.GetString(encoding.GetBytes(str1));

            Assert.AreEqual(str1, str1Pooled);
            Assert.AreNotSame(str1, str1Pooled);
            var str2       = "AnotherTest";
            var str2Pooled = pool.GetString(encoding.GetBytes(str2));

            Assert.AreEqual(str2, str2Pooled);
            Assert.AreNotSame(str2, str2Pooled);
        }