diff -r c4b727dc790c -r 09c42c61e2db 
tests/src/Appender/RollingFileAppenderTest.cs
--- a/tests/src/Appender/RollingFileAppenderTest.cs     Tue Jan 22 14:31:58 
2013 +0100
+++ b/tests/src/Appender/RollingFileAppenderTest.cs     Tue Jan 22 14:37:21 
2013 +0100
@@ -1874,12 +1874,110 @@
                {
                }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        [Test]
+        public void TestGetFileDeleteList1()
+        {
+            string[] files = {   "C:\\foo\\log.201302.log", 
"C:\\foo\\log.201302.1.log", "C:\\foo\\log.201302.2.log", 
+                                 "C:\\foo\\log.201301.log", 
"C:\\foo\\log.201301.1.log", "C:\\foo\\log.201301.2.log",
+                                 "C:\\foo\\log.201212.log", 
"C:\\foo\\log.201212.1.log", "C:\\foo\\log.201212.2.log",  
+                                 "C:\\foo\\log.201211.log", 
"C:\\foo\\log.201211.1.log", "C:\\foo\\log.201211.2.log" };
+            string[] actual = GetFileDeleteList(files, 
DateTime.Parse("2013/02/15"), "C:\\foo\\log.log", ".yyyyMM", 
+                RollingFileAppender.RollPoint.TopOfMonth, 2, true);
+            string[] expected = { "C:\\foo\\log.201211.log", 
"C:\\foo\\log.201211.1.log", "C:\\foo\\log.201211.2.log" };
+            Assert.AreEqual(expected, actual);
+        }
 
-               //
+        /// <summary>
+        /// 
+        /// </summary>
+        [Test]
+        public void TestGetFileDeleteList2()
+        {
+            string[] files = {   "C:\\foo\\log.201302.log", 
"C:\\foo\\log.201302.1.log", "C:\\foo\\log.201302.2.log", 
+                                 "C:\\foo\\log.201301.log", 
"C:\\foo\\log.201301.1.log", "C:\\foo\\log.201301.2.log",
+                                 "C:\\foo\\log.201212.log", 
"C:\\foo\\log.201212.1.log", "C:\\foo\\log.201212.2.log",  
+                                 "C:\\foo\\log.201211.log", 
"C:\\foo\\log.201211.1.log", "C:\\foo\\log.201211.2.log" };
+            string[] actual = GetFileDeleteList(files, 
DateTime.Parse("2013/02/15"), "C:\\foo\\log.log", ".yyyyMM",
+                RollingFileAppender.RollPoint.TopOfMonth, 0, true);
+            string[] expected = {"C:\\foo\\log.201301.log", 
"C:\\foo\\log.201301.1.log", "C:\\foo\\log.201301.2.log",
+                                 "C:\\foo\\log.201212.log", 
"C:\\foo\\log.201212.1.log", "C:\\foo\\log.201212.2.log",  
+                                 "C:\\foo\\log.201211.log", 
"C:\\foo\\log.201211.1.log", "C:\\foo\\log.201211.2.log" };
+            Assert.AreEqual(expected, actual);
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Test]
+        public void TestGetFileDeleteList3()
+        {
+            string[] files = {   "C:\\foo\\log.log.2013.2", 
"C:\\foo\\log.log.2013.2.1", "C:\\foo\\log.log.2013.2.2", 
+                                 "C:\\foo\\log.log.2013.1", 
"C:\\foo\\log.log.2013.1.1", "C:\\foo\\log.log.2013.1.2",
+                                 "C:\\foo\\log.log.2012.12", 
"C:\\foo\\log.log.2012.12.1", "C:\\foo\\log.log.2012.12.2",  
+                                 "C:\\foo\\log.log.2012.11", 
"C:\\foo\\log.log.2012.11.1", "C:\\foo\\log.log.2012.11.2" };
+            string[] actual = GetFileDeleteList(files, 
DateTime.Parse("2013/02/15"), "C:\\foo\\log.log", ".yyyy.M",
+                RollingFileAppender.RollPoint.TopOfMonth, 2, false);
+            string[] expected = { "C:\\foo\\log.log.2012.11", 
"C:\\foo\\log.log.2012.11.1", "C:\\foo\\log.log.2012.11.2" };
+            Assert.AreEqual(expected, actual);
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Test]
+        public void TestGetFileDeleteList4()
+        {
+            string[] files = {   "C:\\foo\\log.2.2013.log", 
"C:\\foo\\log.2.2013.1.log", "C:\\foo\\log.2.2013.2.log", 
+                                 "C:\\foo\\log.1.2013.log", 
"C:\\foo\\log.1.2013.1.log", "C:\\foo\\log.1.2013.2.log",
+                                 "C:\\foo\\log.12.2012.log", 
"C:\\foo\\log.12.2012.1.log", "C:\\foo\\log.12.2012.2.log" };
+            string[] actual = GetFileDeleteList(files, 
DateTime.Parse("2013/02/15"), "C:\\foo\\log.log", ".M.yyyy",
+                RollingFileAppender.RollPoint.TopOfMonth, 0, true);
+            string[] expected = { "C:\\foo\\log.1.2013.log", 
"C:\\foo\\log.1.2013.1.log", "C:\\foo\\log.1.2013.2.log",
+                                  "C:\\foo\\log.12.2012.log", 
"C:\\foo\\log.12.2012.1.log", "C:\\foo\\log.12.2012.2.log"};
+            Assert.AreEqual(expected, actual);
+        }
+
+        //
                // Helper functions to dig into the appender
                //
+        protected class TestDateTime : RollingFileAppender.IDateTime
+        {
+            public TestDateTime(DateTime dt)
+            {
+                m_Now = dt;
+            }
 
-               private static ArrayList GetExistingFiles(string baseFilePath)
+            #region IDateTime Members
+
+            public DateTime Now
+            {
+                get { return m_Now; }
+            }
+
+            #endregion
+
+            private DateTime m_Now;
+        }
+
+        protected static string[] GetFileDeleteList(string[] fileNames, 
DateTime dateTime, string baseFile,
+            string datePattern, RollingFileAppender.RollPoint rollPoint, int 
maxDateRollBackups, bool preserveLogFileNameExtension)
+        {
+            RollingFileAppender appender = new RollingFileAppender();
+            ArrayList list = (ArrayList)Utils.InvokeMethod(appender, 
"GetFileDeleteList", fileNames, dateTime, baseFile,
+                datePattern, rollPoint, maxDateRollBackups, 
preserveLogFileNameExtension);
+            string[] rv = new string[list.Count];
+            int i=0;
+            foreach(string s in list)
+            {
+                rv[i++]=s;
+            }
+            return rv;
+        }
+
+        private static ArrayList GetExistingFiles(string baseFilePath)
                {
                        RollingFileAppender appender = new 
RollingFileAppender();
                        appender.SecurityContext = NullSecurityContext.Instance;
@@ -1921,9 +2019,9 @@
                                        throw new Exception("Unexpected 
Environment.NewLine.Length");
                        }
                }
-       }
+    }
 
-       [TestFixture]
+    [TestFixture]
        public class RollingFileAppenderSubClassTest : RollingFileAppender
        {
                [Test]

Reply via email to