Author: rgrabowski
Date: Sun Sep 18 12:24:20 2005
New Revision: 289957

URL: http://svn.apache.org/viewcvs?rev=289957&view=rev
Log:
Fix for IBATISNET-133. Moved GetDataCacheHitRatio method into CachingStatement 
class. Checked for MappedStatement vs CachingStatement in SqlMapper's 
GetDataCacheStats method.

Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
 Sun Sep 18 12:24:20 2005
@@ -3,6 +3,7 @@
 using System.Collections;
 using IBatisNet.Common;
 using IBatisNet.Common.Exceptions;
+using IBatisNet.Common.Utilities;
 using IBatisNet.DataMapper.MappedStatements;
 using IBatisNet.DataMapper.Test.Domain;
 using NUnit.Framework;
@@ -30,7 +31,6 @@
                        InitScript(sqlMap.DataSource, ScriptDirectory + 
"other-init.sql");
                }
 
-
                /// <summary>
                /// TearDown
                /// </summary>
@@ -1166,6 +1166,27 @@
                        Assert.AreEqual(5, list.Count);
                }
 
+               /// <summary>
+               /// Test for cache stats only being calculated on 
CachingStatments
+               /// </summary>
+               [Test]
+               public void TestJIRA113()
+               {
+                       sqlMap.FlushCaches();
+
+                       // taken from TestFlushDataCache()
+                       // first query is not cached, second query is: 50% 
cache hit
+                       IList list = 
sqlMap.QueryForList("GetCachedAccountsViaResultMap", null);
+                       int firstId = 
HashCodeProvider.GetIdentityHashCode(list);
+                       list = 
sqlMap.QueryForList("GetCachedAccountsViaResultMap", null);
+                       int secondId = 
HashCodeProvider.GetIdentityHashCode(list);
+                       Assert.AreEqual(firstId, secondId);
+
+                       string cacheStates = sqlMap.GetDataCacheStats();
+
+                       Assert.IsNotNull(cacheStates);
+               }
+
                #endregion 
 
                #region CustomTypeHandler tests
@@ -1222,8 +1243,5 @@
                        Assert.AreEqual(false, anOther.Bool2);
                }
                #endregion 
-
-
-
        }
 }

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
 Sun Sep 18 12:24:20 2005
@@ -58,6 +58,22 @@
                        _mappedStatement = statement;
                }
 
+               /// <summary>
+               /// Gets a percentage of successful cache hits achieved
+               /// </summary>
+               /// <returns>The percentage of hits (0-1), or -1 if cache is 
disabled.</returns>
+               public double GetDataCacheHitRatio() 
+               {
+                       if (_mappedStatement.Statement.CacheModel != null) 
+                       {
+                               return 
_mappedStatement.Statement.CacheModel.HitRatio;
+                       } 
+                       else 
+                       {
+                               return -1;
+                       }
+               }
+
                #region IMappedStatement Members
 
                /// <summary>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs 
Sun Sep 18 12:24:20 2005
@@ -207,23 +207,6 @@
 
                #region Methods
                /// <summary>
-               /// Gets a percentage of successful cache hits achieved
-               /// </summary>
-               /// <returns>The percentage of hits (0-1), or -1 if cache is 
disabled.</returns>
-               public double GetDataCacheHitRatio() 
-               {
-                       if (_statement.CacheModel != null) 
-                       {
-                               return _statement.CacheModel.HitRatio;
-                       } 
-                       else 
-                       {
-                               return -1;
-                       }
-               }
-               
-
-               /// <summary>
                /// 
                /// </summary>
                /// <param name="request"></param>

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Sun Sep 18 
12:24:20 2005
@@ -1332,26 +1332,42 @@
                /// <returns></returns>
                public string GetDataCacheStats() 
                {
-                       StringBuilder buffer = new StringBuilder("\nCache Data 
Statistiques");
-                       buffer.Append("\n=======================\n");
+                       StringBuilder buffer = new StringBuilder();
+                       buffer.Append(Environment.NewLine);
+                       buffer.Append("Cache Data Statistics");
+                       buffer.Append(Environment.NewLine);
+                       buffer.Append("=====================");
+                       buffer.Append(Environment.NewLine);
+
                        IDictionaryEnumerator enumerator = 
_mappedStatements.GetEnumerator();
                        while (enumerator.MoveNext()) 
                        {
-                               MappedStatement statement = (MappedStatement) 
enumerator.Value;
-                               buffer.Append(statement.Name);
+                               IMappedStatement mappedStatement = 
(IMappedStatement)enumerator.Value;
+
+                               buffer.Append(mappedStatement.Name);
                                buffer.Append(": ");
-                               double hitRatio = 
statement.GetDataCacheHitRatio();
-                               if (hitRatio != -1) 
+
+                               if (mappedStatement is CachingStatement)
                                {
-                                       buffer.Append(Math.Round(hitRatio * 
100));
-                                       buffer.Append("%");
-                               } 
-                               else 
+                                       double hitRatio = 
((CachingStatement)mappedStatement).GetDataCacheHitRatio();
+                                       if (hitRatio != -1) 
+                                       {
+                                               
buffer.Append(Math.Round(hitRatio * 100));
+                                               buffer.Append("%");
+                                       } 
+                                       else 
+                                       {
+                                               buffer.Append("No Cache.");
+                                       }
+                               }
+                               else
                                {
                                        buffer.Append("No Cache.");
                                }
-                               buffer.Append("\n");
+
+                               buffer.Append(Environment.NewLine);
                        }
+
                        return buffer.ToString();
                }
 


Reply via email to