예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:FileActivityEventArgs" /> class.
 /// </summary>
 /// <param name="file">The file that changed, if any (full path).</param>
 /// <param name="oldFileName">The old name of the file, if any (full path).</param>
 /// <param name="directory">The directory that changed, if any (full path).</param>
 /// <param name="oldDirectoryName">The old name of the directory, if any (full path).</param>
 /// <param name="page">The page owning the attachment, if any.</param>
 /// <param name="activity">The activity.</param>
 public FileActivityEventArgs(StFileInfo file, string oldFileName,
     StDirectoryInfo directory, string oldDirectoryName,
     PageInfo page, FileActivity activity)
 {
     this.file = file;
     this.oldFileName = oldFileName;
     this.directory = directory;
     this.oldDirectoryName = oldDirectoryName;
     this.page = page;
     this.activity = activity;
 }
예제 #2
0
        public void Format()
        {
            MockRepository mocks = new MockRepository();

            IFilesStorageProviderV30 prov = mocks.StrictMock<IFilesStorageProviderV30>();

            string content = string.Format(
            @"This is a test page.
            <countDownloads pattern=""#CoUnT#-#DaIlY#-#WeEkLy#-#MoNtHlY#"" startDate=""{0:yyyy'/'MM'/'dd}"">
            <file name=""/my/file.zip"" provider=""{1}"" />
            <file name=""/my/other/file.zip"" />
            <file name=""/my/inexistent-file.zip"" provider=""{1}"" />
            <file name=""/my/other/inexistent-file.zip"" />

            <attachment name=""attn.zip"" page=""page"" provider=""{1}"" />
            <attachment name=""attn.zip"" page=""page"" />
            <attachment name=""inexistent-attn.zip"" page=""page"" provider=""{1}"" />
            <attachment name=""inexistent-attn.zip"" page=""page"" />
            <attachment name=""attn.zip"" page=""inexistent-page"" provider=""{1}"" />
            <attachment name=""attn.zip"" page=""inexistent-page"" />
            </countDownloads>", DateTime.Today.AddDays(-60), prov.GetType().FullName);

            // */file.zip was downloaded 13 times
            // attn.zip was downloaded 56 times
            // Expected output: 138-2-16-68

            IHostV30 host = mocks.StrictMock<IHostV30>();
            host.LogEntry(null, LogEntryType.Warning, null, null);
            LastCall.On(host).IgnoreArguments().Repeat.Any();
            Expect.Call(host.GetSettingValue(SettingName.DefaultFilesStorageProvider)).Return(
                prov.GetType().FullName).Repeat.Times(4);
            Expect.Call(host.GetFilesStorageProviders(true)).Return(
                new IFilesStorageProviderV30[] { prov }).Repeat.Times(8);

            StFileInfo[] myFiles = new StFileInfo[] {
                new StFileInfo(1000, DateTime.Now, 13, "/my/File.zip", prov),
                new StFileInfo(10000, DateTime.Now, 1000, "/my/other-file.zip", prov)
            };
            StFileInfo[] myOtherFiles = new StFileInfo[] {
                new StFileInfo(1000, DateTime.Now, 13, "/my/OTHER/file.zip", prov),
                new StFileInfo(10000, DateTime.Now, 2000, "/my/OTHER/other-file.zip", prov)
            };

            StFileInfo[] attachments = new StFileInfo[] {
                new StFileInfo(2000, DateTime.Now, 56, "aTTn.zip", prov),
                new StFileInfo(20000, DateTime.Now, 1000, "other-attn.zip", prov)
            };

            // /my/*
            Expect.Call(host.ListFiles(null)).IgnoreArguments().Constraints(
                RMC.Is.Matching(
                    delegate(StDirectoryInfo dir) {
                        return dir.FullPath == "/my/";
                    })).Return(myFiles).Repeat.Times(2);

            // /my/other/*
            Expect.Call(host.ListFiles(null)).IgnoreArguments().Constraints(
                RMC.Is.Matching(
                    delegate(StDirectoryInfo dir) {
                        return dir.FullPath == "/my/other/";
                    })).Return(myOtherFiles).Repeat.Times(2);

            PageInfo page = new PageInfo("page", null, DateTime.Now);

            Expect.Call(host.FindPage("page")).Return(page).Repeat.Times(4);
            Expect.Call(host.FindPage("inexistent-page")).Return(null).Repeat.Twice();

            Expect.Call(host.ListPageAttachments(page)).Return(attachments).Repeat.Times(4);

            mocks.ReplayAll();

            DownloadCounter counter = new DownloadCounter();
            counter.Init(host, "");

            string output = counter.Format(content, null, FormattingPhase.Phase3);

            Assert.IsTrue(output == @"This is a test page.
            138-2-16-68" || output == @"This is a test page.
            138-2-16-69", "Wrong output");

            mocks.VerifyAll();
        }
예제 #3
0
        public void Format()
        {
            MockRepository mocks = new MockRepository();

            IFilesStorageProviderV30 prov = mocks.StrictMock <IFilesStorageProviderV30>();

            string content = string.Format(
                @"This is a test page.
<countDownloads pattern=""#CoUnT#-#DaIlY#-#WeEkLy#-#MoNtHlY#"" startDate=""{0:yyyy'/'MM'/'dd}"">
	<file name=""/my/file.zip"" provider=""{1}"" />
	<file name=""/my/other/file.zip"" />
	<file name=""/my/inexistent-file.zip"" provider=""{1}"" />
	<file name=""/my/other/inexistent-file.zip"" />

	<attachment name=""attn.zip"" page=""page"" provider=""{1}"" />
	<attachment name=""attn.zip"" page=""page"" />
	<attachment name=""inexistent-attn.zip"" page=""page"" provider=""{1}"" />
	<attachment name=""inexistent-attn.zip"" page=""page"" />
	<attachment name=""attn.zip"" page=""inexistent-page"" provider=""{1}"" />
	<attachment name=""attn.zip"" page=""inexistent-page"" />
</countDownloads>", DateTime.Today.AddDays(-60), prov.GetType().FullName);

            // */file.zip was downloaded 13 times
            // attn.zip was downloaded 56 times
            // Expected output: 138-2-16-68

            IHostV30 host = mocks.StrictMock <IHostV30>();

            host.LogEntry(null, LogEntryType.Warning, null, null);
            LastCall.On(host).IgnoreArguments().Repeat.Any();
            Expect.Call(host.GetSettingValue(SettingName.DefaultFilesStorageProvider)).Return(
                prov.GetType().FullName).Repeat.Times(4);
            Expect.Call(host.GetFilesStorageProviders(true)).Return(
                new IFilesStorageProviderV30[] { prov }).Repeat.Times(8);

            StFileInfo[] myFiles = new StFileInfo[] {
                new StFileInfo(1000, DateTime.Now, 13, "/my/File.zip", prov),
                new StFileInfo(10000, DateTime.Now, 1000, "/my/other-file.zip", prov)
            };
            StFileInfo[] myOtherFiles = new StFileInfo[] {
                new StFileInfo(1000, DateTime.Now, 13, "/my/OTHER/file.zip", prov),
                new StFileInfo(10000, DateTime.Now, 2000, "/my/OTHER/other-file.zip", prov)
            };

            StFileInfo[] attachments = new StFileInfo[] {
                new StFileInfo(2000, DateTime.Now, 56, "aTTn.zip", prov),
                new StFileInfo(20000, DateTime.Now, 1000, "other-attn.zip", prov)
            };

            // /my/*
            Expect.Call(host.ListFiles(null)).IgnoreArguments().Constraints(
                RMC.Is.Matching(
                    delegate(StDirectoryInfo dir) {
                return(dir.FullPath == "/my/");
            })).Return(myFiles).Repeat.Times(2);

            // /my/other/*
            Expect.Call(host.ListFiles(null)).IgnoreArguments().Constraints(
                RMC.Is.Matching(
                    delegate(StDirectoryInfo dir) {
                return(dir.FullPath == "/my/other/");
            })).Return(myOtherFiles).Repeat.Times(2);

            PageInfo page = new PageInfo("page", null, DateTime.Now);

            Expect.Call(host.FindPage("page")).Return(page).Repeat.Times(4);
            Expect.Call(host.FindPage("inexistent-page")).Return(null).Repeat.Twice();

            Expect.Call(host.ListPageAttachments(page)).Return(attachments).Repeat.Times(4);

            mocks.ReplayAll();

            DownloadCounter counter = new DownloadCounter();

            counter.Init(host, "");

            string output = counter.Format(content, null, FormattingPhase.Phase3);

            Assert.IsTrue(output == @"This is a test page.
138-2-16-68" || output == @"This is a test page.
138-2-16-69", "Wrong output");

            mocks.VerifyAll();
        }