public void FileIsRolledAndArchivedWhenIntervalSetToMidnightAndDayIncremented()
        {
            fileNameWithoutExtension = Guid.NewGuid().ToString();
            fileName = fileNameWithoutExtension + Extension;

            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "--header--", "--footer--", null,
                                                          0, "yyyy", RollFileExistsBehavior.Increment, RollInterval.Midnight))
            {
                traceListener.TraceData(new TraceEventCache(),
                                        "source",
                                        TraceEventType.Information,
                                        0,
                                        "logged message 1");
                traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;

                dateTimeProvider.SetCurrentDateTime(DateTime.Now);
                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                dateTimeProvider.SetCurrentDateTime(DateTime.Now.AddDays(1).Date);
                //dateTimeProvider.currentDateTime = DateTime.Now.AddMinutes(2);
                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.TraceData(new TraceEventCache(), "source", TraceEventType.Information, 1, "logged message 2");
            }

            Assert.IsTrue(File.Exists(fileName));
            Assert.IsTrue(LogFileReader.ReadFileWithoutLock(fileName).Contains("logged message 2"));

            string[] archiveFiles = Directory.GetFiles(".", fileNameWithoutExtension + "*");
            Assert.AreEqual(2, archiveFiles.Length);
            Assert.IsTrue(LogFileReader.ReadFileWithoutLock(fileNameWithoutExtension + "." + DateTime.Today.Year + ".1" + Extension).Contains("logged message 1"));
        }