Exemplo n.º 1
0
        public void TempFileDeleter_Delete_Success()
        {
            bool wasCalled       = false;
            var  expectedDueTime = 1000;
            var  expectedPeriod  = GlobalConstants.NetworkComputerNameQueryFreq;

            var mockTimerFactory = new Mock <ITimerFactory>();
            var mockTimer        = new Mock <ITimer>();

            mockTimerFactory.Setup(o => o.New(It.IsAny <TimerCallback>(), null, expectedDueTime, expectedPeriod))
            .Returns(mockTimer.Object)
            .Callback <TimerCallback, object, int, int>((callback, state, dueTime, interval) => {
                callback?.Invoke(null);
                wasCalled = true;
            });

            var mockFileWrapper      = new Mock <IFile>();
            var mockDirectoryWrapper = new Mock <IDirectory>();

            mockFileWrapper.Setup(o => o.Exists(It.IsAny <string>())).Returns(false);
            mockFileWrapper.Setup(o => o.Exists("Settings.config")).Returns(true);
            mockFileWrapper.Setup(o => o.Exists("secure.config")).Returns(true);

            mockDirectoryWrapper.Setup(o => o.Exists("C:\\ProgramData\\Warewolf\\Temp\\Warewolf\\Debug")).Returns(true);

            var mockFileInfo_getsDeleted      = new Mock <IFileInfo>();
            var mockFileInfo_neverGetsDeleted = new Mock <IFileInfo>();

            IEnumerable <IFileInfo> infos()
            {
                mockFileInfo_getsDeleted.Setup(o => o.CreationTime).Returns(DateTime.Now.Subtract(new TimeSpan(72, 0, 0)));
                yield return(mockFileInfo_getsDeleted.Object);

                mockFileInfo_neverGetsDeleted.Setup(o => o.CreationTime).Returns(DateTime.Now.Subtract(new TimeSpan(36, 0, 0)));
                yield return(mockFileInfo_neverGetsDeleted.Object);
            }

            mockDirectoryWrapper.Setup(o => o.GetFileInfos("C:\\ProgramData\\Warewolf\\Temp\\Warewolf\\Debug")).Returns(infos);

            ConfigurationManager.AppSettings.Set("DaysToKeepTempFiles", "1");
            using (var tempFileDeleter = new TempFileDeleter(mockDirectoryWrapper.Object, mockTimerFactory.Object))
            {
                tempFileDeleter.DaysToKeepTempFiles = 2;
                tempFileDeleter.Start();
            }

            Assert.IsTrue(wasCalled, "expect timercallback to be called");

            mockTimerFactory.Verify(o => o.New(It.IsAny <TimerCallback>(), null, expectedDueTime, expectedPeriod), Times.Once);
            mockDirectoryWrapper.Verify(o => o.Exists("C:\\ProgramData\\Warewolf\\Temp\\Warewolf\\Debug"), Times.Once);
            mockDirectoryWrapper.Verify(o => o.GetFileInfos("C:\\ProgramData\\Warewolf\\Temp\\Warewolf\\Debug"), Times.Once);

            mockDirectoryWrapper.Verify(o => o.Exists("C:\\ProgramData\\Warewolf\\DebugOutPut\\"), Times.Once);
            mockDirectoryWrapper.Verify(o => o.GetFileInfos("C:\\ProgramData\\Warewolf\\DebugOutPut\\"), Times.Never);

            mockFileInfo_getsDeleted.Verify(o => o.Delete(), Times.Once);
            mockFileInfo_neverGetsDeleted.Verify(o => o.Delete(), Times.Never);
        }
Exemplo n.º 2
0
        public void TempFileDeleter_Constructor()
        {
            var mockDirectoryWrapper = new Mock <IDirectory>();
            var mockTimerFactory     = new Mock <ITimerFactory>();

            using (var serverEnvironmentPreparer = new TempFileDeleter(mockDirectoryWrapper.Object, mockTimerFactory.Object))
            {
            }
        }